RaspberryPi SDカードのまるごとバックアップ

 2016-01-17
RaspberryPiはSDカードにシステムを構築するのでしばらくすると壊れるでしょう。 (フラッシュメディアの運命ですな)
なので定期的にバックアップをとるのですが、ここでちょっとした罠があります。
 

SDカード丸ごとバックアップの罠

例えば8GBのSDカードといっても、実際には微妙にサイズが違っていたりします。数バイトとかです。
Win32 Disk Imagerを用いた丸ごとバックアップの場合、ほんとうに丸ごとバックアップをとっているので、この数バイトの差違も見逃してくれません。
なので、同じ8GBを買って来ても、リストア時に「容量足りねーぞ」と言われたりするのです。めんどぅ。

対処法

RaspberryPiで使用しているSDカードのパーティションを一旦縮めてからバックアップをとると、そのような面倒な目に遭わずに済みます。
  1. gpartedでバックアップ元パーティションを縮める
  2. ddコマンドで最終セクタまでの丸ごとバックアップをとる
  3. gpartedでバックアップ元パーティションを元の大きさに広げる。あるいはraspi-configからExpand Filesystemする
という感じ。
基本的にはこの方法は、すでにバックアップを取ってしまったイメージに対しても行うことが出来るので、後から必要に応じて処置するというスタンスでもまぁいいと思う。
既存のバックアップイメージに対してゴニョゴニョする場合は、kpartxコマンドでイメージファイルをデバイスとしてマウントして、あとは同じ手順でパーティションを縮めます。

実際の処理

とりあえず実マシンで動いてるCentOSでgpartedしてみたらどうやらバージョンが古いみたいでリサイズ処理ができなかった。(^^;)
仕方ないのでgpartedのLiveCDで起動・・するのは面倒なのでVirtualBOXで起動・・しなかった・・(´・ω・`)
しょーがないのでKnoppix7.6をVirtualBOXで起動してgpartedでパーティションを縮めた。
無事に処理が終わったので、fdisk -l /dev/sda で最終セクタを調べて、ddで最終セクタ+1までを吸い出した。 dd if=/dev/sda of=./raspi-minimizedimg count=10356736 bs=512
ちなみに保存先は、mount -t cifs //192.168.0.257/hoge /mnt/hoge してマウントしたsambaの領域。 mount -t smb とかmount -t smbfsとかはエラーになったのでcifsを使おう。



knoppixは「とりあえず」でいろいろ出来るから便利だなぁ。
オーバーレイファイルシステムもなかなか便利だし、USBフラッシュに突っ込むとデフォでFAT32にしてくれるから他環境でも使い回せるし。

 
コメント












管理者にだけ表示を許可する
トラックバック
トラックバックURL:
http://wbbwbb.blog83.fc2.com/tb.php/219-152f3eb8
≪ トップページへこのページの先頭へ  ≫