先日ナンバーディスプレイ用に使ってるRaspberry PiのSDカードがクラッシュしてしまいました。

SDカードがクラッシュすることは良くあることだからバックアップはとても大事。バックアップ取ってあるから復旧なんてチョイチョイさっ♪

みたいな事をFacebookに投稿し、Amazonで注文したSDカードが届いたので早速復元してみました…が

バックアップイメージのサイズよりSDカードのサイズが小さいよ!! って感じのエラーが出て復元できません。

これは全く予想してませんでした。

このとき思い浮かんだ対処方法が、

  1. 違うメーカーの16GBのSDカード買ってチャレンジする。
  2. 32GBのSDカードを買う。
  3. クリーンインストールする。

の3つ。

すぐに実行できるのは3のクリーンインストールです。これやって無理だったら1か2か両方かを選べばいいかなと思ってさっさとインストールを開始。
Raspberry Pi の初期セットアップはそれほど難しくないのでちゃっちゃと済ませ、肝心のナンバーディスプレイをセットアップしていきます。
当初インストールしたモジュールを探してみると、全てのバージョンが上がってましたが気にせず最新バージョンをインストールして初期セットアップが終わりました。

いざ実践投入してみるとナンバーディスプレイが反応せず、自作のプログラムを半日くらい掛けて見直しましたが改善しません。どうもモジュールのバージョンアップによって標準出力をリアルタイムで捕捉できなくなってしまったみたい。設定でなんとかなるのかもしれませんが英語が理解できないので無理です。

ここまでやってあきらめたくないけどあまり時間は掛けたくないし。
AmazonでSDカードを眺めながら、もしかてイメージファイルのサイズ変更ができるんじゃないかとネットで検索。
今の時代、どこかに情報がころがってます。

Reducing Raspbian File System Image Size

↑ ここに掲載されてるソースコードをコピペして、resizeimage.plというファイルを作り(改行コードLFで保存)それを走らせることでファイルサイズを縮小できるようです。

#カレントディレクトリをresizeimage.plファイルの置いてあるディレクトリに移動して
sudo perl ./resizeimage.pl [縮小したいイメージファイルのフルパス]

気を付けることは、
・sudoを付ける。
・イメージファイルの指定はフルパスで。
・指定したイメージファイルを直接変換してるみたい。途中で失敗したらって考えるとちょいと心配。
こんな感じです。

実際に処理しましたが本当に縮小されました。当たり前か。^^;
これでやっと復旧完了です。
めっちゃ時間掛かっちゃいましたが今回得た情報はこれからも役立ちそうな情報です。

まずはウチにあるバックアップイメージを片っ端から縮小しちゃいましょう!! ^^