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 です。
- もし 入力ファイルを表し、 の 出力ファイルを表します。したがって、の正確なコピーは、 /dev/sda で利用可能になります /dev/sdb 。
- エラーがある場合、上記のコマンドは失敗します。パラメータを与えると conv=エラーなし 読み取りエラーがある場合でもコピーを続行します。
- 入力ファイルと出力ファイルについては十分に注意してください。念のため、ターゲット内でソース デバイスを指定した場合、またはその逆の場合は、すべてのデータが失われる可能性があります。
- 以下の dd コマンドを使用してハードドライブからハードドライブにコピーするには、同期オプションを使用すると、同期 I/O を使用してすべてをコピーできます。
# dd if=/dev/sda of=/dev/sdb conv=noerror, sync>
# dd if=/dev/sda of=/dev/sdb>
# 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バイト 上記のコマンドのブロック サイズとして。
参考文献: