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 {{category2 OS,Linux}}