cygwinでDDを行う時の覚書

■ドライブ文字を探す

まずは、対象となるドライブのドライブレターに対して、

if=\\\\.\\F:

のように指定すればいいのだが、これでうまくいかない時には、

/dev/hda IDEのマスターディスク
/dev/hda1 第一基本パーテーション
/dev/scd0 CD-ROMドライブ

などを指定する必要がある。
しかし、USBメモリやリムーバブルHDDなどはどこなのかよくわからない。
そこで、ディスクを取り付ける前に

ls -l /dev/sd*

を実行して、接続前の結果と接続後の結果を見比べて違いにより判断する。

また、余談だがdfコマンドを入力すると各ディスクの使用量などを確認できる。

$ df
ファイルシス   1K-ブロック      使用    使用可 使用% マウント位置
C:               172625916 125492368  47133548   73% /cygdrive/c
F:                30318588  16646212  13672376   55% /cygdrive/f
G:               488384000  83858308 404525692   18% /cygdrive/g


■CDをファイルに保存

CDをファイルに保存するときには、

dd if=/dev/scd0 of=test.iso

のようにすればよいのだが、

@エラーがあっても強制的に読むオプション

conv=noerror,sync

Aエラー時にゼロクリアされる範囲を設定

bs=512

@Aを付ける事により、不良セクタを使ったコピープロテクトCDなどもISOファイルにする事ができる。


■ディスク全体に0を書き込む

ディスク全体に0を書き込むには、

dd of=/dev/sdb1 if=/dev/zero bs=64M

実行すると、パーテーション全体に0が書き込まれる。
ただ、bs=64M 一度にバッファに読み込むバイト数のオプションを指定しなくても動くが、
大きいディスクだと物凄く遅くなる。

$ dd of=/dev/sdb1 if=/dev/zero bs=64M
101+0 レコード入力
101+0 レコード出力
6777995264 バイト (6.8 GB) コピーされました、 266.21 秒、 25.5 MB/秒


■DDの途中経過

まず、DDを実行中の画面に対して、もう一つの画面を立ち上げて
psコマンドを実行してDDのPIDを調べます。

そのPIDに対して、killコマンドを使ってUSR1シグナルを送ると、DDが途中経過を表示します。





▲トップページ > その他