ddでディスク検査のつづき
2007/01/15(月) 26:57 NetBSD はてブ情報 はてブに登録 はてブ数

サスペンドで接続が切れてた

朝起きたらMacBookがサスペンドしていて (あたりまえだけど)、嫌な予感とともに起こしてみたら案の定sshの接続が切れていました。

つまり、昨日のddは失敗したというわけ。

んで、dd if=/dev/zero of=/dev/sd0c bs=1mをするだけのshell scriptを書いて、バックグラウンドジョブで流して出かけました。

rawデバイスとblockデバイスの歴然とした違い

そんでもって、夜になっても終わらず。13時間ぐらい流したところでおかしいなぁとIRCでぼやくと、「sd0cじゃなくてrsd0cじゃないの?」というアドバイスを頂戴しました。

おー、rawデバイスとblockデバイスですね。newfsのときも教えてもらったのに応用の利かないやつです。

なんかUSBメモリだとスピードが一桁ちがうとのこと。

ということでddコマンドにcount=10をつけて10Mbytesだけ書く試験をやってみました。
glantank# dd if=/dev/zero of=/dev/sd0c bs=1m count=10
10+0 records in
10+0 records out
10485760 bytes transferred in 8.168 secs (1283761 bytes/sec)
glantank# dd if=/dev/zero of=/dev/rsd0c bs=1m count=10
10+0 records in
10+0 records out
10485760 bytes transferred in 1.893 secs (5539228 bytes/sec)
4.3倍ほど差が出ました。これは歴然とした差ですね。5Mbyes/secなので計算すると250Gbytesの場合、やっぱり14時間弱ほどかかりそうです。

ehciのumass接続なのでUSBとしてはがんばっているはずですが遅いですねぇ。結局のところPATAで接続しないと全然駄目だろうという話になりました。やれやれ、眠っているCeleron400MHzのマシンを引っ張りだしてくるしかなさそうですねぇ。出すのも分解するのも面倒だなぁ。

SIGINFOでddの進行状況を表示させる

ところで、ddの進行状況は普通に実行していると表示されませんが、SIGINFOのsignalを送ってやると進行状況(というかddの結果出力そのまま)を表示してくれると教えてもらいました。

kill -INFO プロセスIDでも良いですが、フォアグラウンドで実行している場合にはCtrl-Tで簡単に出力が得られます。こりゃ便利。

名前:  非公開コメント   

  • TB-URL  http://www.tokuda.net/diary/024/tb/