Raspberry PiのSDカードバックアップ方法
はじめに
Raspberry Piを使用している際、SDカードのデータが破損することがあり、バックアップが重要だと感じることが多いです。本記事では、X環境がある場合とCLI環境しかない場合に分けて、Raspberry PiのSDカードのバックアップ方法を紹介します。
背景
Raspberry pi間を無線で直結するWi-Fi Directで繋いでアレコレするソフトを書くアルバイトをやっていました。 無事、納品して肩の荷が1つ降りた気分でおります。
そんな中、Raspberry piに書き込んだデータをSDにバックアップ取りたいなという話があってその方法を調べて試したので記録として残します。
お気持ちとしてはよく分かる話で、Raspberry piってすぐにSDカード死ぬんですよ。 電源アダプタが安定してないのが原因なのか、SDカード君が貧弱なのか、とにかく3週間のアルバイト期間で3回ぐらいデータ一部破損したりがありまして・・・バックアップは非常に重要なのです。
コードとかWindowsからRemote接続して作業してるのでまだ残そうと思えば残せるので良いのですが、 OpenCVのビルドとか3時間コースなのでこれを何度もやり直すのはホント辛い。
バックアップは非常に重要です。
バックアップに必要なもの
- Raspberry pi本体(SDカードにOS導入済み)
- SDカードリーダ
- バックアップ用のSDカード
X環境がある場合
X環境があればRaspbianに標準搭載されているSD Card Copierを使用するのが一番手軽です。 特徴として、容量の違うSDカードに対してもバックアップを取ることができます。
ネットの情報も多いです。この方法を選ぶことができれば一択だと思います。
SD Card Copierの使い方
Raspbianを起動しデスクトップを表示します。 次に、SDカードリーダをRaspberry piにぶっ刺して認識していることを確認します。
メニューから、accessoriesを選択肢、SD Card Copierを起動します。
起動したらコピー元とコピー先を選択して、Startを押します。
あとは気長に待てばバックアップの作成が完了します。 ホント楽。自動でSDカードのサイズ調整もやってくれたり文句なかったですね。 強いて上げればX環境がいることぐらいです。
CLI環境しかない場合
さて、今回困ったのがCLI環境しか無い場合です。 dd comandでバックアップ取ればいいじゃんとか思われるかと思いますが、あれ吹っ飛ぶんですよ。 失敗するとデータが吹っ飛ぶんですよ。親友社員の頃パイセンと一緒に作業してたときにデータふっとばしてあーーーーってなったんですよ。できれば関わりたくねぇやり方なんですね・・・
rpi-cloneの使い方
古い記事ですが、このようなものを見つけました。 rpi-cloneを使った方法が良さそうなので今回はこの方法を試してみました。
Raspberry PiでIoTなシステム開発:SDカードのバックアップはrpi-cloneでやろう
rpi-cloneのInstall方法
公式のInstall手順に従いこれらを実行します。
git clone https://github.com/billw2/rpi-clone.git
cd rpi-clone
sudo cp rpi-clone rpi-clone-setup /usr/local/sbin
rpi-cloneの使用方法
SDカードリーダを指して、ストレージのアドレスを取得しましょう。
lsblk
SDカード接続前と、あとではこのように表示されます。
今回はSDカードがsdaとして認識しているので、rpi-cloneの実行するときに使います。
sudo rpi-clone sda
管理者権限を求められるのでsudoで実行する。 処理のログを見ていると権限なくてダメ?みたいな記載も見えたが目を瞑りました。 私は、何も見てません。
Ok to proceed with the clone? (yes/no):
と聞かれるので、yesと答えます。 あとはいくつか聞かれますがEnterでOKです。
5分程度放置すれば完了します。USB3.0対応している場合もう少し早くなるはずです。
完了したらSDカードを差し替えて起動確認しましょう。 当方の環境では特に問題なく作業を終えることができました。
エラーが出る場合などは、バックアップを取りたいSDカードをフォーマットして初期化した状態で実行すると良いと思います。
Disk Imager
今回不採用とした方法も一部紹介します。
imgファイルが取得できるので、Windowsでバックアップファイルを管理したいなどがあればとても便利なツールです。
当方の環境では、最新と思しき1.0.0のGUIが起動しないことや、 1つバージョンの古いもので試すと、エラーが測れる等がありました。
調べるとファイル名が長すぎるとかでも出るエラーのようです、 心当たりがなさすぎるので棚上げしている課題です。
おわりに
Raspberry PiのSDカードのバックアップ方法は、環境によって異なります。X環境がある場合は、SD Card Copierを使用するのが一番手軽で、容量の違うSDカードにも対応しています。CLI環境しかない場合は、rpi-cloneを使用する方法がおすすめです。また、Disk Imagerもバックアップ方法の選択肢の1つですが、今回は不採用としました。バックアップは非常に重要なので、適切な方法を選んで行いましょう。
今回は無事納品できて良かった。嫁に負担を強いてきたのでしばらくは粛々とご機嫌取るようにしましょう。