http://x68000.q-e-d.net/~68user/unix/pickup?dd
例
ディスクコピー
dd if=/dev/hda of=/dev/hdb bs=32M
hda がコピー元
hdb がコピー先
bs のサイズは環境に合わせる。省略しても動くけど、遅いことがある
コピー先は、コピー元以上のサイズでなければならない。
(FAT32、ext3などのファイルシステムに左右されない)
lzop で圧縮してバックアップ、リストア
http://blog.dc-d.jp/?p=600
バックアップ
dd if=/dev/sda | lzop -c > /mnt/sdc1/sda.img.lzo
リストア
lzop -dc < /mnt/sdc1/sda.img.lzo | dd of=/dev/sda
gzip で圧縮してバックアップ、リストア
圧縮率は lzop より高いが、速度が遅い。
バックアップ
dd if=/dev/sda | gzip -c > /mnt/sdc1/sda.img.gz
リストア
gzip -dc < /mnt/sdc1/sda.img.gz | dd of=/dev/sda
ファイル作成
dd if=/dev/zero of=/swapfile bs=1M count=1024 dd if=/dev/zero of=50mb bs=1M count=50
とりあえず、bs は困ったら 1M くらいが無難。
MBRバックアップ
dd if=/dev/hda of=$backdata/mbr.img bs=512 count=1
MBRリストア
dd if=mbr.img of=/dev/hda bs=446 count=1
途中経過を表示する
kill -USR1 プロセス番号
で、dd の途中経過を表示できる
主要オプション一覧
if=[ファイル] | 入力ファイル (デバイス)。指定しないと標準入力。 |
of=[ファイル] | 出力ファイル (デバイス)。指定しないと標準出力。 |
bs=[サイズ] | 入出力のブロックサイズを指定。ibs と obs の両方に同じ値をセットする場合に使用する。 |
ibs=[サイズ] | 入力のブロックサイズを指定 |
obs=[サイズ] | 出力のブロックサイズを指定 |
count=[ブロック数] | コピーするブロック数を指定 |
conv=変換オプション | 変換オプションを指定 (後述)。conv=hoge,fuga などと複数指定も可能。 |
seek=[ブロック数] | 出力の開始位置を指定されたブロックに移動してからコピーする |
oseek=[ブロック数] | FreeBSD では seek と同じ。Solaris では違うっぽい…? |
skip=[ブロック数] | 入力の開始位置を指定されたブロックに移動してからコピーする |
iseek=[ブロック数] | FreeBSD では skip と同じ。Solaris では skip より速いと書いてある…? |
サイズには数字のほか、k・m・g などの単位を指定できる (ブロック数にも使えるけど混乱するかも)。
bs=1 | 1バイト |
bs=1b | 512バイト (b はバイトではなくブロック) |
bs=1k | 1KB |
bs=1m | 1MB |
bs=1g | 1GB |
[通知用URL]
Tweet
最終更新時間:2013年04月22日 22時01分53秒