Raspberry Piのデータをバックアップする
- 2021.03.11
- ソフトウェア
- Raspberry Pi, ソフトウェア, まとめ
SDの容量はぼちぼち大きいですが、実際に使用しているデータサイズは小さいのでSD丸ごとイメージバックアップはしない方向にします。
Raspberry Piのデータバックアップ
Raspberry PiはシステムストレージにSDカードを利用していて耐久性に難があるので、バックアップしておかないといざというときに困る可能性があります。
バックアップする際にSD丸ごとフルイメージバックアップをする方法もありますが、それだとSDカードの容量分ストレージを消費してしまうので今回はできるだけ容量を消費しないようにします。
また、Raspberry Piを稼働させたままRaspberry Pi本体でバックアップできるようにします。
バックアップ手順
手順はこちらのサイトを参考にしました。簡単に説明するとパーティション1などはセクタ単位でバックアップしてパーティション2などはdumpコマンドでバックアップします。
デバイスとパーティションの確認
sudo fdisk -l
これを実行してバックアップ対象のデバイスとパーティション、セクタ数を確認します。
パーティション2より前のセクタまでをバックアップ
mkdir /mnt/hdd/RPiBackup/`date '+%Y%m%d'` -p && sudo dd if=/dev/sdb of=/mnt/hdd/RPiBackup/`date '+%Y%m%d'`/boot.bin bs=512 count=532479
自分の環境に合わせてコマンドを修正してddコマンドでバックアップします。
私の場合は外付けHDDのマウント先に日付のディレクトリを作成し、バックアップ対象のRaspberry Piのシステムストレージを指定、先程確認したパーティション2よりひとつ前のセクタ数を指定しています。
パーティション2をバックアップ
sudo dump -f /mnt/hdd/RPiBackup/`date '+%Y%m%d'`/data.dump /dev/disk/by-uuid/1943b829-a99b-45b8-9fe5-7136dbea4c4a
自分の環境に合わせてコマンドを修正してdumpコマンドでバックアップします。今回私はUUIDで指定しました。
sudo apt-get install dump
dumpコマンドがインストールされていない場合はインストールしてください。
これでバックアップ完了です。
リストア手順
デバイスとパーティションの確認
sudo fdisk -l
これを実行してリストア先のデバイスを確認してください。ここで間違えると大事なデータが消えます。
パーティション2より前のセクタまでをリストア
sudo dd if=/mnt/hdd/RPiBackup/20200101/boot.bin of=/dev/sdb
自分の環境に合わせてコマンドを修正してddコマンドでリストアします。
パーティション2を再作成
sudo parted /dev/sdb rm 2 mkpart primary ext4 532479s -1s q
自分の環境に合わせてパーティション2を削除し、空いているディスクスペースをすべてパーティション2に割り当てます。
sudo mkfs.ext4 /dev/sdb2
パーティション2をフォーマットします。
パーティション2をリストア
mkdir mount sudo mount /dev/sdb2 mount cd mount
適当なところにマウントし、
sudo restore -rf /mnt/hdd/RPiBackup/20200101/data.dump
リストアします。
アンマウント
cd sudo umount mount
アンマウントしてリストアしたSDカードを取り外します。
これでリストア完了です。リストアしたSDカードを本体に差し込んで起動してください。
これでSDカードが大変なことになってもデータを戻すことができます。
これを定期実行するようにしたり、大きな変更が発生したときに実行するようにしておけば安心です。
-
前の記事
Rakuten Handを検討する 2021.03.10
-
次の記事
Raspberry Piのデータを自動で定期バックアップする 2021.03.12