• ベストアンサー

dd実行 途中経過

お世話になります。 ddコマンド採ったイメージをddコマンドでHDDに書き込みたいのですがサイズが大きいため時間がかかります。そこで現在どこまで書き込んだか割合(○%)や簡単なプログレスバーを表示させたいと考えています。 ddの書き込み途中でどれだけ書き込んだかの数値を取得する方法はありますでしょうか。 コマンドの実行は「dd if=imagefile of=/dev/hda1」のような感じです。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • maku_x
  • ベストアンサー率44% (164/371)
回答No.1

dd --help してみると、 Sending a USR1 signal to a running `dd' process makes it print I/O statistics to standard error and then resume copying. $ dd if=/dev/zero of=/dev/null& pid=$! $ kill -USR1 $pid; sleep 1; kill $pid 18335302+0 records in 18335302+0 records out 9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s と、kill で USR1 シグナルを dd コマンドに与えることで、何バイト書き込んだかを標準エラー出力に表示させることができるようです。後はこれを標準入力にリダイレクトさせて、awk 等でサイズ部分を拾って、元ファイルのサイズと比較すれば、書き込みサイズの割合を表示させられると思います。

1percent
質問者

お礼

早速の回答ありがとうございます。 まさにご回答頂いた内容を求めておりました。 教えてgooを利用していてひさしぶりに感動する回答を頂きました。 ありがとうございました。