Raspberry piのOSや設定内容をSDカードに丸ごとバックアップ取る方法【rpi-clone】【SD Card Copier】

2021-10-17

はじめに

Raspberry pi間を無線で直結するWi-Fi Directで繋いでアレコレするソフトを書くアルバイトをやっていました。 無事、納品して肩の荷が一つ降りた気分でおります。

そんな中、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でやろう

github

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が起動しないことや、 一つバージョンの古いもので試すと、エラーが測れる等がありました。

調べるとファイル名が長すぎるとかでも出るエラーのようです、 心当たりがなさすぎるので棚上げしている課題です。

おわりに

SD Card のバックアップの定番方法に挙げられていた、 Disk Imagerがとても有名したが使えなかったのが非常に残念です。 個人的にはrpi-cloneが早くて簡単なのでおすすめです。 CLIしかなく選択肢がない場合には是非ご活用ください。

今回は無事納品できて良かった。嫁に負担を強いてきたのでしばらくは粛々とご機嫌取るようにしましょう。