« 2013年6月 | トップページ

2013年7月

2013年7月 6日 (土)

PiRLPノードのSDカードバックアップ

Raspberry Piは,SDカードをHDDの代わりに使用していますので,以前のPCベースのIRLPノードのように backup_for_reinstall をしなくても,SDカードそのもののクローンを作っておけば,それを差し替えるだけで全く同じように動作します。万が一の場合のノード復旧が大幅に簡略化されますので,おすすめです。

SDカードのクローンは,Windows PCでは Win32 Disk Imager,Linux であれば dd コマンドを使って簡単に作ることができます。(Raspberry Pi以外の別PCで行います。もちろんSDカードスロット付きPCか,無ければUSBアダプターを用意する必要あります。)

ただし注意点が一点。

SDカードはたとえ同じメーカー,同じ容量のもので揃えたとしても,個々に微妙な容量の差があるようです。もし,オリジナルのSDカードの容量が,クローン用のSDより微妙に大きい場合,上記ツールだけではうまくクローンを作れません。コピー先容量不足のエラーが出ます。特に,Raspeberry Piインストール後,raspi_configを使ってSDカードの容量をフルに使うような設定をした場合,こうなる可能性が高くなります。

このような場合には,クローンを一サイズ上のSDカードに作るか(4GBなら8GB,8GBなら16GB),あるいはオリジナルSDカード上のlinuxファイルシステムとそのパーティションを少し縮小する必要が出てきます。

後者のlinuxファイルシステムとパーティションの縮小は,GPartedというフリーツールで簡単に行う事ができます。Live CDを利用すれば,このCDからブートしますので,どのPCでも利用可能。しかし,後述の理由から,別PCはLinuxを使った方が良いと思います。

RaspbianのSDカード上には,FAT16の小さめのブートパーティションと,ext4の大きいlinuxパーティションの2つが作られています。(以下は fdisk の出力。)

Number  Start      End       Size      Type     File system  Flags

1        4194kB  62.9MB  58.7MB  primary   fat16             lba

2        62.9MB  3806MB 3743MB  primary   ext4

GPartedを使って,ブートパーティションの方は一切触らずに,linuxパーティションだけを少々(例えば200MB位。)減らしてあげます。その際,linuxパーティションの始めのfree spaceはいじらず(スタート位置はそのままに),後ろのfree spaceが増えるように(後ろから減らすように),全体サイズを減らします。Gpartedは,ファイルシステムとパーティションの両方を同時に減らしてくれますので,これだけでOK。

その後,Linux上で dd コマンドを使ってクローンを作ります。

dd bs=1M if=/dev/sdx of=/tmp/sdcard.img (オリジナルSDイメージをPCにコピー。その後SDカードを入れ替えます。)

dd bs=1M if=/tmp/sdcard.img of=/dev/sdx (上でコピーしたオリジナルイメージをクローンにコピー。)

(sdxxは,使うPC環境で変わります。)

2番目のddで(クローンに書込む時に)やはり容量不足のエラーが出るかも知れませんが,それは無視して最後まで続行します。エラーが出たときには,必要な部分は全てコピーが済んでいます。残念ながらWindows上のWin32 Disk Imagerではエラーが生じた時点でコピーが停止してしまってうまく行かないようです。

| | コメント (2) | トラックバック (0)

« 2013年6月 | トップページ