Shujima Blog

Apple製品,技術系の話をするブログ

Mac/LinuxでmicroSDのRaspberry Piイメージを丸ごとコピーしてバックアップ

Raspberry Piといえど,長く使っていれば,いろんな設定,いろんなパッケージの導入など,簡単に再構築できない状態になっていきます.

そんなRaspberry Piのイメージ全体をバックアップすることで,いざという時に備えておくことをお勧めします.

この記事では,バックアップをMac(Linuxも可)で行う手順を示します.

microSDの確認

まずは,Raspberry Piのストレージがからどのように認識されているかを確認します.

microSDをカードリーダなどを使ってMacに挿入します.

Macのターミナルで,

$ df -h

($は入力しない) でデバイスを一覧します.

f:id:masa_flyu:20180712105923p:plain

名前などから判断して、microSDを探します.

一番左の列に書かれている

/dev/diskXsX

(Xは任意の数字が入る) のうち、sXを除いた部分

/dev/diskX (これはコマンドではない)

を後で使用するので,覚えておきます.

micro SDからMac/PCにコピーする

$ sudo dd if=/dev/rdiskX of=(好きなディレクトリ+ファイル名) bs=1m

($は入力しない) で丸ごとコピーできます.

  • ※diskの前にrを打っていることに注意.これを忘れると遅くなる.
  • ※bs=1mを打ち忘れないように注意.これを忘れると非常に遅くなる.

例)

$ sudo dd if=/dev/rdisk8 of=~/RasPi.img bs=1m

コピーの途中経過を知りたい時はCtrl + Tを押します. 再び$の行が出たらコピー終了.

上記の例の場合ホームフォルダ(Macintosh HD/ユーザー/[ユーザー名])に「RasPi.img」というファイルが作られています.

速度は70MB/sくらいで、16GBのmicroSDをちょうど200秒くらいでコピーできました.

コマンドの解説

  • ddはコピーをするコマンド.ifはコピー元,ofはコピー先.
  • diskをrdiskとすると余計なバッファを介さないため,早くなるらしい解説
  • bs=1mは書き込みの単位を1MBごとに行うということ.初期設定だとかなり小さいため,書き込みが遅くなる.

Mac/PCからmicroSDにコピーする(同じSDの場合)

バックアップを,元のSDに書き込む場合です.

異なるSDに書き込む場合(別のRaspberry Piのイメージを入れる場合)はうまくいかないかもしれませんので次節の対応が必要です.

基本的に手順は同じです.ただし,マウント(直接読み取りできる状態)しているとddコマンドを使用できないのでアンマウントします.

コピーの時と同様,最初にdfコマンドを使用し,

$ df -h

ディスクの番号を調べたら,以下のコマンドでアンマウントします.

$ diskutil unmountDisk /dev/diskX 

(Xはdfコマンドで確かめたディスクの番号に置き換える)

MacならデスクトップからmicroSDの表示が消えたはずです.

次にddコマンドを実行します.コピーの時とifとofを入れ変えて,

$ sudo dd if=(イメージのディレクトリ+ファイル名.img)  of=/dev/rdiskX bs=1m

を実行します.

$ sudo dd if=~/RasPi.img  of=/dev/rdisk8 bs=1m

のようになるはずです.

ちなみにMacだと「...if=」までを打ったあとで,コピーするimgファイルをドラッグアンドドロップするとディレクトリとファイル名を入力してくれます.

コピー速度は9MB/sくらいで,16GBのmicroSDに1500秒くらいでコピーできました.

以降書きかけです

micro SDからMac/PCにコピーする(別のSDに移す用)

イメージを異なるSDに書き込む場合,書き込み自体を終えられても起動しない場合が(多々)あります.

これは,両者のストレージ容量が異なっているためで,同じメーカー同じ型番の商品でもわずかな差異で失敗することがあります.

そこで,次の方法で,元々のパーティションを編集しておく必要があります.

この節は以下のページを多大に参考にしています.

dev.classmethod.jp

ただし,Macでより簡単にするために,一部工程を省いています.

私の方法では無駄になる領域がたくさん発生しますので,気になる場合には元のページを参考にすることをお勧めします.

GPartedで縮小する

この工程ではUbuntu等のLinuxか,正常に稼働するもう一台のRaspberry Pi(とRaspbian OS)が必要になります.

私はMac上でParallels Desktop上にインストールしたUbuntu 18.04を使用しました.

どちらにせよ,「GParted」というアプリケーションが必要になります(Raspbianには標準でインストールされています).

microSDの接続

Ubuntuソフトウェアセンターで「GParted」を検索してインストール

GPartedをインストールできれば,どんな方法でもいいです(前は標準で入ってた気がするので,インストールする必要無いかも).

f:id:masa_flyu:20181128171517j:plain

インストールしたら起動します.

f:id:masa_flyu:20181128171745j:plain

-->

当ブログをご利用いただく際には免責事項をお読みください。