logo

Linuxの「dd」コマンド

DD は、ファイルの変換とコピーを主な目的とする Unix および Unix 系オペレーティング システム用のコマンド ライン ユーティリティです。

  • Unix では、ハードウェア (ハードディスク ドライブなど) のデバイス ドライバーと特殊なデバイス ファイル (/dev/zero や /dev/random など) が、通常のファイルと同様にファイル システムに表示されます。
  • 機能がそれぞれのドライバーに実装されている場合、dd はこれらのファイルの読み取りや書き込みも行うことができます。
  • その結果、dd は、ハード ドライブのブート セクターのバックアップや、固定量のランダム データの取得などのタスクに使用できます。
  • dd プログラムは、バイト順序のスワップや ASCII および EBCDIC テキスト エンコーディングとの間の変換など、コピーされるデータに対して変換を実行することもできます。

使用法 : dd のコマンド ライン構文は、次の構文を使用するという点で他の多くの Unix プログラムとは異なります。 オプション=値 より標準的なものではなく、そのコマンドラインオプションについて -オプションの値 または –オプション=値 フォーマット。デフォルトでは、dd は stdin から読み取り、stdout に書き込みますが、これらは if (入力ファイル) および of (出力ファイル) オプションを使用して変更できます。



dd コマンドの実際の例:

    ハードディスク全体をバックアップするには: ハードディスクのコピー全体を、同じシステムに接続されている別のハードディスクにバックアップするには、次のように dd コマンドを実行します。この dd コマンドの例では、ソース ハードディスクの UNIX デバイス名は /dev/hda、ターゲット ハードディスクのデバイス名は /dev/hdb です。
     # dd if=/dev/sda of=/dev/sdb>
    • もし 入力ファイルを表し、 出力ファイルを表します。したがって、の正確なコピーは、 /dev/sda で利用可能になります /dev/sdb
    • エラーがある場合、上記のコマンドは失敗します。パラメータを与えると conv=エラーなし 読み取りエラーがある場合でもコピーを続行します。
    • 入力ファイルと出力ファイルについては十分に注意してください。念のため、ターゲット内でソース デバイスを指定した場合、またはその逆の場合は、すべてのデータが失われる可能性があります。
    • 以下の dd コマンドを使用してハードドライブからハードドライブにコピーするには、同期オプションを使用すると、同期 I/O を使用してすべてをコピーできます。
       # dd if=/dev/sda of=/dev/sdb conv=noerror, sync>
    パーティションをバックアップするには: 入力ファイルでパーティションのデバイス名を使用でき、出力では dd コマンドで示されているようにターゲット パスまたはイメージ ファイルを指定できます。
     # dd if=/dev/hda1 of=~/partition.img>
    ハードディスクのイメージを作成するには: ハードディスクのバックアップを作成する代わりに、ハードディスクのイメージ ファイルを作成し、他のストレージ デバイスに保存できます。データをディスク イメージにバックアップすることには多くの利点がありますが、その 1 つは使いやすさです。この方法は通常、他のタイプのバックアップよりも高速で、予期せぬ大惨事の後にデータを迅速に復元できます。この方法では、ハード ディスク /dev/hda のイメージが作成されます。
     # dd if=/dev/hda of=~/hdadisk.img>
    ハードディスク イメージを使用して復元するには: 別のハードディスクのイメージ ファイルを使用してハードディスクを復元するには、次の dd コマンドを使用できます。
     # dd if=hdadisk.img of=/dev/hdb>

    イメージ ファイル hdadisk.img ファイルは /dev/hda のイメージであるため、上記のコマンドは /dev/hda のイメージを /dev/hdb に復元します。 CDROM バックアップを作成するには: dd コマンドを使用すると、ソース ファイルから iso ファイルを作成できます。したがって、CD を挿入し、dd コマンドを入力して CD コンテンツの ISO ファイルを作成できます。

     # dd if=/dev/cdrom of=tgsservice.iso bs=2048>

    dd コマンドは、入力の 1 ブロックを読み取り、それを処理して出力ファイルに書き込みます。入力ファイルと出力ファイルのブロック サイズを指定できます。上記の dd コマンドの例では、パラメータ BS 入力ファイルと出力ファイルの両方のブロック サイズを指定します。したがって、ddは使用します 2048バイト 上記のコマンドのブロック サイズとして。

参考文献: