それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

dd のコピー進捗状況を表示する- progress

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