ddコマンドの進捗をgdd status=progressで可視化かつ高速に書き込みを行う
ddコマンドの進捗をgdd status=progressで可視化かつ高速に書き込みを行う

ddコマンドの進捗をgdd status=progressで可視化かつ高速に書き込みを行う

raspberry piのイメージを書き込む際に「dd」コマンドを使用することが一般的ですが、進捗率が見えず、いつ書き込みが完了するのか見えない問題があります。

 

ましてや、USB2.0で接続したmicroSDへの書き込みであれば、正常に書き込みが行われているのか不安になります。

 

そこで、ddコマンドで進捗率が見えるように変わりに「gdd」を使用してみました。

 

Macでgddをインストール

Macでgddコマンドを利用する場合は、brewを利用します。

 

brew install coreutils

 

以上で完了しますが、linuxの際はインストール方法が異なると思われます。

 

gdd status=progressを使用してみる

「gdd」コマンドで、「status=progress」を使用すると進捗率をリアルタイムで可視化することができます。

 

以下がコマンドと出力例です。

 

sudo gdd if=/dev/disk2 of=/Users/Downloads/raspi.img bs=1k status=progress
> 852595712 bytes (853 MB, 813 MiB) copied, 500 s, 1.7 MB/s

 

このように書き込みバイト数が表示されるので、ddコマンドを使用するよりも安心できます。

 

imageの書き込みをする際は、なるべくgddを使用したほうが良さそうです。

 

速度を求めているのであれば、「bs=1M」の方が良いですね。

(1mではないので注意。)

 

Macではddの書き込みが遅い

ddCommandの書き込みは、bsで書き込みを行う単位を指定することで速度が変わってきます。

 

しかし、Macの場合はbsの値を大きくしても速度が遅い可能性があります

 

これにより、SDカードに書き込みを行いたくても1晩書き込み状態で寝かせる必要が発生する。

 

解決するためには「/dev/disk2」ではなく、rowデータで書き込み「/dev/rdisk2」を指定することで数十倍も早くなります。

 

sudo gdd if=/dev/rdisk2 of=/Users/Downloads/raspi.img bs=1k status=progress
> 3074424832 bytes (3.1 GB, 2.9 GiB) copied, 255 s, 12.0 MB/s
  • .