NanoPi M4V2で使用しているmicroSDのバックアップを取る

Posted by 雅楽斎 on Saturday, April 11, 2020

TOC

まるごとバックアップ

現時点での我が家のNanoPi M4V2はmicroSDで起動、運用しています。1microSDカードは、書き換え回数に上限があり、それを超えるとある日突然使えなくなってしまいます。2

なので、使えなくなった時に一からやり直すという面倒な作業を減らすためにストレージを別途接続したりする訳ですが、microSD自体もバックアップしておけば、最後に取ったバックアップを他のmicroSDに書き込むことでその時点の環境は元に戻せる訳です。

ということで、今回はファイル単位のバックアップではなくメディアまるごとバックアップします。なお、対象のmicroSDカードはArmbian Bionic serverをインストールして使用しています。

使用コマンドの確認

特に組み込み系の開発ではイメージを作成し、イメージを焼き込むことでリリースすることが多いですが、これの逆でイメージをddで書き戻しを行うことでバックアップを取ります。

また、並列動作するgzipでもあるpigz、途中経過を表示してくれるpvを使用するので、ない場合はインストールします。pigzは割とインストールされている場合が多いんじゃないかなと思います。

# apt-get install pigz pv

Ubuntu – bionic の pigz パッケージに関する詳細

Ubuntu – bionic の pv パッケージに関する詳細

microSDの取り外し、別PCへの接続、バックアップ

(NanoPiの電源が入っているならshutdown -h nowで電源を落とし、適当なmicroSDカードリーダーに挿して他のPCに接続します。

今回はRaspberry Pi 2Bで作業します。接続時に該当しそうなログをdmesgで確認します。

[1247930.731277] usb 1-1.2: new high-speed USB device number 6 using dwc_otg
[1247930.831780] usb 1-1.2: New USB device found, idVendor=1908, idProduct=0226
[1247930.831806] usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[1247930.833162] usb-storage 1-1.2:1.0: USB Mass Storage device detected
[1247930.834205] scsi host1: usb-storage 1-1.2:1.0
[1247931.860407] scsi 1:0:0:0: Direct-Access     Generic  Mass-Storage     1.11 PQ: 0 ANSI: 2
[1247931.862608] sd 1:0:0:0: Attached scsi generic sg1 type 0
[1247932.594363] sd 1:0:0:0: [sdb] 15554560 512-byte logical blocks: (7.96 GB/7.42 GiB)
[1247932.594971] sd 1:0:0:0: [sdb] Write Protect is off
[1247932.594993] sd 1:0:0:0: [sdb] Mode Sense: 03 00 00 00
[1247932.595817] sd 1:0:0:0: [sdb] No Caching mode page found
[1247932.601696] sd 1:0:0:0: [sdb] Assuming drive cache: write through
[1247932.615419]  sdb: sdb1
[1247932.622225] sd 1:0:0:0: [sdb] Attached SCSI removable disk

今回はmicroSDがsdb、パーティションがsdb1になっています。なので、(圧縮はしますが)8GB以上の空き領域があるところをリダイレクト先に指定してddを実行します。圧縮しているので2.4GBになりました。

# dd bs=4M if=/dev/sdb | pv | pigz > /mnt/ssd/ippan/sd_backup/nanopi_`date +%Y%m%d`.gz
7.42GiB 0:19:55 [6.35MiB/s] [   <=>                                            ]
1898+1 records in
1898+1 records out
7963934720 bytes (8.0 GB, 7.4 GiB) copied, 1195.25 s, 6.7 MB/s
# ls -l /mnt/ssd/ippan/sd_backup
total 2434928
-rw-r--r-- 1 root root 2490914793 Apr 11 13:36 nanopi_20200411.gz

pvコマンドを挟むと処理済みのデータ量と毎秒のスループットが表示されるので、何かの作業の裏で実行する場合は終了時刻の大まかな見積もりができます。

1.53GiB 0:04:46 [4.14MiB/s] [             <=>                                  ]
1.86GiB 0:05:59 [5.61MiB/s] [                                      <=>         ]

microSDへの書き戻しは以下の手順で行います。(pvを挟んだ動作は未検証)

# pigz -dc /mnt/ssd/ippan/sd_backup/nanopi_20200411.gz | pv | dd bs=4M of=/dev/sdb 

スポンサーリンク


  1. NanoPi M4V2はNVMeのSSD(ハット装着の場合)やeMMCスロットも付いてるので、microSD以外のデバイスからのブートも可能です [return]
  2. 産業用とか工業用とか明記されているものはそのへんに売っているものよりも遥かに長寿命です。そのぶん高価でもあります [return]

comments powered by Disqus