【linux】ddコマンド
概要
- コマンド
- dd – ファイルを変換してコピーする
- 構文
- dd [if=file] [of=file] [ibs=bytes] [obs=bytes] [bs=bytes] [cbs=bytes] [skip=blocks] [seek=blocks] [count=blocks] [conv=code]
詳細は man dd
や dd --help
参照。
使用例
dd は入力から出力へデータをコピーするコマンドである。cp はファイルからファイルにコピーするだけであるが、dd はファイルからデバイス、デバイスからファイル、デバイスからデバイスへのコピーも可能なため、ディスクのバックアップやダンプにも使用できる。
ディスクのコピー
/dev/ad0 を /dev/ad1 にコピーする。ただし両方のディスクが同容量でなくてはならない。
# dd if=/dev/ad0 of=/dev/ad1
フロッピーのコピーなども可能(FDD の内容をファイルにダンプ)。
# dd if=/dev/rfd0 of=fdd.flp
フロッピーのイメージファイルを FDD にコピー。OS インストールフロッピー作成時によく使う。
# dd if=kern.flp of=/dev/rfd0
ディスクのバックアップとリストア
バックアップやリストアは、シングルユーザモードに落とすか、デバイスを umount してから行うこと。
# dd if=/dev/ad0 of=ad0backup.dump
⇒ HDD からファイルへのバックアップ
# dd if=ad0backup.dump of=/dev/ad0
⇒ リストアは、バックアップのときと if・of を逆にする
データ量が大きいときは gzip で圧縮することもできる。
# dd if=/dev/ad0 | gzip -c > ad0backup.dump.gz
⇒ 圧縮しつつバックアップ
# gzip -dc < ad0backup.dump.gz | dd of=/dev/ad0
⇒ 伸長しつつリストア
ネットワーク越しのバックアップ
# tar cf - . | rsh remotehost dd of=/dev/テープデバイス名 obs=20b
ファイルのバックアップとリストア
ディスクだけでなく、ファイル単位でもバックアップできる。1ファイルだけバックアップしていても、あまりうれしくないが、それも可能。
# dd if=.cshrc of=/dev/ad0
⇒ .cshrc を HDD にバックアップ
# dd if=/dev/ad0 of=.cshrc
⇒ .cshrc を HDD からリストア
ディスクイメージの保存、復元
dd if=/dev/sdb of=/mnt/sdc1/USBブートなどのイメージ.img
dd if=/mnt/sdc1/USBブートなどのイメージ.img of=/dev/sdb
コメント