dd_rescueコマンドとddコマンドの違い
先日の投稿ネタで、id:otsuneさんからコメント頂きました。
id:otsune 2007/11/11 21:43
>ddコマンドって、実行すると完了するまで だんまり状態になるんですよね。
いちおうUSR1シグナルを与えると今どこまでコピーしてるのか表示してくれます。
どっちゃにしろdd_rescueのほうがblocksizeを自動調整してくれたりするので便利だけど。
貴重な情報、ありがとうございます〜。って訳で、早速比較検証。VirtualPCにKNOPPIX喰わせて、どのような変化が訪れるのか検証してみました。
ところで、VirtualPCにKNOPPIX 5.1.1を喰わせると、(そのままでは)マウスが正常動作しません。
解決方法は、以下のURL通りです。
- ねっとでべろ: ubuntu 7.10 on VirtualPCのマウス問題(解決)
http://yk.tea-nifty.com/netdev/2007/10/ubuntu_710_on_v_066b.html
従って、VirtualPCでKNOPPIXを動かすには、起動時、以下のように記述します。
$ knoppix noswap i8042.noloop
起動時エラーが幾つか出ますが、マウスは使えます。
ddの画面表示
ご覧の通り、完了するまで だんまり状態です。
ここで、"kill -USR1 プロセスID"を指定すると、その瞬間の状況が見られます。
時間比較
VirtualPC上で10MBの仮想HDDですが、どのくらいの転送速度がかかるのか、(timeコマンドを使って)ちょっと比較してみました。
(注意:仮想HDD上でのテストなので参考値として下さい)
コマンド | real | user | sys |
---|---|---|---|
(1)単純なddコマンド | 13.534s | 0.324s | 6.768s |
(2)otsuneさんの改良表記版dd | 4.864s | 0.188s | 1.148s |
(3)dd_rescue | 1.880s | 0.008s | 1.024s |
コマンドの指定例は、以下の通り。
(1)単純なddコマンド $ dd if=/dev/hdb of=/dev/hda (2)otsuneさんの改良表記版dd $ dd if=/dev/hdb of=/dev/hda ibs=512 obs=1024k conv=sync,noerror (3)dd_rescue $ dd_rescue /dev/hdb /dev/hda
表示を頻繁に行うので、(表示無しの)ddコマンドの方が速いんだろうと想像していたんですが、dd_rescueって結構速いんですね。知らなかった。