2020年01月31日

Raspberry PiのmicroSDカードイメージをddコマンドでUSB HDDにイメージバックアップしてみる

自宅で動かしているRaspberry PiのmicroSDカードのバックアップを他のmicroSDカードに行っている件なのですが、この方法によるバックアップだと、microSDカードの全域に書き込みが発生してしまうことから、どうやらmicroSDカードの書き換え回数による寿命が早期に訪れてしまうらしいことがわかりました。

また、バックアップをするたびに、小さなサイズのmicroSDカードを詰まんで作業をするのは苦痛です。
そのため、何か別の方法がないかなと考えていたのですが、どうやらddコマンドを利用してRaspberry Piに接続しているUSB HDDにイメージ丸ごとバックアップをしてしまうのが一番手っ取り早いことに気づきました。

YYYYMMDD=`date '+%Y%m%d'`

sudo dd if=/dev/mmcblk0 of=/home/pi/mntusb/tmp/rspi_SDcard_img_$YYYYMMDD.img
zip -9 /home/pi/mntusb/tmp/rspi_SDcard_img_$YYYYMMDD.zip /home/pi/mntusb/tmp/rspi_SDcard_img_$YYYYMMDD.img


こんな感じのシェルスクリプトを作成しておき、バックアップを取得したいときに実行するだけ。
(サーバ利用のために常時起動しているRaspberry Piなので、当然USBの外付けHDDが接続されており、そのマウント先が ~/mntusb/ になっています)
圧縮が成功したことを人間の目で確認してから、手動でimgファイルを消す運用です。
(man zipによれば、終了コードが0のときは正常終了、2以上のときは何かしらの異常を意味するとあるので、[$? -eq 0] を判定すればimgファイルの削除 (ddをsudoで実行しているのでrm -fにしておくのが良いかな?) は自動化できますが、まぁ今回はいいや)

USB HDDに書き込んだイメージファイルを、別のPCへ移動しておき、復旧が必要になったらそのイメージファイルを新しいSDカードへ書き込めば、復旧完了。これなら、これまでより気楽かつ頻繁にバックアップを取得できるようになるはず。

posted by ayacy at 00:00 | Comment(0) | TrackBack(0) | PC