こんにちは。先日ラズパイのmicroSDが死んでしまったので再インストールしました。ほんとにすぐ死んじゃう子です。実は以前にもいくつか投稿していたのですが、ファイルシステムが壊れて読み出せなくなってしまいました。
再インストールも楽じゃないので、今回はラズパイ3(Jessie)の完全バックアップを取りたいと思います。
目的
Raspbian Jessie(NOOBS環境)のmicroSDカードの完全バックアップを取りたい&定期的に自動でバックアップしたい。
用意するもの
- バックアップ用のmicroSDカード(今使っているもの以上の容量)
- カードリーダ(つけっぱなしにする予定なので小型のものが便利です。)
- 動作中のラズパイ
方法
まずmicroSDカードのフォーマットを行いました。家に64GBのカードが余っていたのでそれを使いましたが、なんでもいいと思います。カードリーダに差してラズパイのUSBポートに接続します。フォーマットの方法もなんでも良いですが、ラズパイでやるならパーティション分けもできる「gparted」というソフトが使いやすかったです。標準では入っていないのでインストールしましょう。
sudo apt-get install gparted
フォーマットの形式はFAT32にしましたが、特になんでも良いと思います。
続いてカードのコピーを行います。Raspbian Jessieにはなんと動作中のカードを丸ごとコピーできるツールがデフォルトで入っています。簡単操作でパーティション作成からコピーまで全部自動でやってくれるすごいツールです。GUIで操作するので、画面左上のラズパイマークから、「アクセサリ」→「SD Card Copier」を選びます。
From Deviceには/dev/mmcblk0(←稼働中のSDカードです)、To Deviceにはバックアップ用カードを指定します。私の場合は/dev/sdaで認識されましたがここはUSBを指す順番等で変わるようです。
2つ選んだらStartを押すとコピーが始まります。32GBのカードをコピーしたので30分以上掛かってしまいました。その間CPUに負荷がかかって何もできないので、コーヒーを飲みながら動画を見たりして時間を潰しましょう。
SD Card Copierはとても簡単で便利なのですが、cronとかで定期的に実行したいと思ってもGUI操作しかできないようです。コマンドラインから使えそうなバックアップツールを探していたら「rsync」が良さそうでした。(ちなみにNOOBSじゃない人は「rpi-clone」を使うのが簡単そうです)。インストールします。
sudo apt-get install rsync
rsyncは稼働中のカードのrootディレクトリをコピーできます。毎回不要なファイルをコピーしないように、まず除外リストを書いておきます。
sudo nano /rsync-exclude.txt /proc/* /sys/* /dev/* /boot/* /tmp/* /run/* /mnt/* /var/tmp/* /var/log/* /media/*
書き終わったらrsyncを実行します。
sudo rsync -aEv --delete-during --exclude-from=/rsync-exclude.txt / /media/ppdr/root
最後のディレクトリはバックアップ用カードがマウントされている場所です。これまたバックアップに30分以上かかります。エラーが出ずに終われば成功です。最後にこれを定期的に実行するように設定しておきましょう。いつもどおりcronに登録するだけで完了です。
crontab -e #毎週月曜日10時00分にバックアップを実行する 00 10 * * 1 sudo rsync -a --delete-during --exclude-from=/rsync-exclude.txt / /media/ppdr/root
-Eと-vは進捗を表示するやつですので外してしまいました。これでSDカード突然死の恐怖からも開放されます。(^O^)
参考にしたサイト
http://denshikousaku.net/backup-raspberry-pi