dd コマンドで進行状況を確認したい
dd といえば、USRシグナルを送れば進捗状況が見えるのですが。
kill -USR1 $pid; sleep 1; kill $pid
これは起動中にddコマンドに対してpidへシグナルを送ることで表示されるのですが。説明するのは大変ですよね。
かんたんにコマンドの引数で進捗表示する
どれくらい進んでいるか閲覧できるようにする。 status=progressをつける
dd if=/dev/zero of=out.img bs=1024 count=$((1024*512)) status=progress
rsync みたいに転送状況を知りたいときはこれを使うと便利。
ddするときは、忘れずにつけておきたい。
実例
次のような感じに、コピーの書き込み速度や、何バイトをddできたかを見ることができます。
takuya@NO NAME$ dd if=/dev/zero of=out.img bs=1024 count=$((1024*512)) status=progress 260588544 bytes (261 MB, 249 MiB) copied, 9 s, 28.7 MB/s
進捗見るならdd rescue が
dd の変わりに dd_rescue を使うと良いのは周知の事実ですが。dd のほうがbs count の細かい数字が指定しやすくていいですよね。
進捗を見る方法まとめ
dd コマンドで状況を確認するには、次の方法があります。
- kill USR1 シグナル
- ddrescue
- dd status=progress