ぽよメモ

レガシーシステム考古学専攻

HDDにシステム移行

Raspberry Piをいじり始めてしばらくになりますが、長期間運用していると気になるのはやはりSDの耐久性です。
容量も少ないため、今のままではファイルサーバとして不十分です。
今後、以下の様にしていきたいと思っています

  • SambaNetatalkによるMacおよびWin用のファイルサーバにする
  • NetatalkによってTime Machineを有効化し、MacBook Proのバックアップサーバにする
  • miniDLNAを使ってサーバ内のメディアファイルをiPhoneなどのポータブルデバイスにストリーミング可能にする
  • Twitter用のbotの運用
  • vimを使い開発環境の構築

それに伴い、やはり容量の拡張は重要です。そこで、LaCie minimusの2TBモデルを購入しました。
これをパーティション分割し、

  • システム
  • Time Machine
  • ファイル共有用

といった感じにしていきたいと思います。
パーティション分割はfdiskコマンドを使いCUIで行ってもいいのですが、そんなことしなくてもGPartedというグラフィカルで使いやすいソフトウェアがあるのでそれを使います。
Ubuntuを適当なUSBメモリを使いLIVE USBにし、適当なマシンで起動します。今はLIVE USBを作るのも簡単なソフトウェアがあるので簡単にできます。
この2つのページを参考にして今回は作業を進めました。
Raspberry PiファイルシステムHDD化 その1/3 (HDD接続~データ移行)
Raspberry Piの起動ディスクをポータブルHDDにした
1つ目の方の参考ページはパーティション分割をCUIで行っています。
正直すでに参考ページの内容が充実していて僕が焼き増しする必要はないので、躓いたところだけ上げていきます。
まず、RasPiの電源拡張です。よく考えなくても今回購入したLaCie minimusはAC電源から電源供給されるので、この設定はしなくてよいです。また、RasPiに電源供給するアダプタも低出力のものにしておくと、ポータブルHDD などがスピンアップできない場合があるようです。
実際にマウント、移行する段階にあたり、ddコマンドでコピーしチェックをかけたのですが一回目はddコマンドが正常に動作しなかったのかすさまじい量のエラーが出ました。すさまじい量のエラーで、いつまでたってもチェックが終わりませんでした。
もしエラーの数が100を超えるようなら途中で遮り、パーティション内を掃除してddコマンドを再実行したほうが良いと思います。
e2fsckコマンドには-pという自動で判別し修復するオプションがありますが、これをつけるとエラーが出てファイルチェックが始まりませんでした。どうせエラーが出ても修復の可否を判断できる能力なんてないので、思い切って-y(全てyes)というオプションを付加して実行しました。正常にddが動作していれば、そう時間はかからずにファイルチェック及び修復が完了します。
今回のシステム移行はあくまでシステムファイルのみをHDDに移行するため、bootファイルはMicroSDカード上にあります。つまりHDDにシステムを移行したからといってMicroSDを抜いていいわけではないので、入れっぱなしにしておいてください。
どうもRasPiはbootファイルを必ずMicroSDから読むようです。うまくHDDに移行できず起動に失敗した場合でも、cmdline.txtを書き換えることで元のMicroSDに残っているシステムを起動することができるようになっています(そういう目的ではないでしょうが)。
耐久性的には多少マシになっているはずですが過去の経験上HDDなんて急にぶっ壊れるのはわかっているので、一週間に一回程度SD上にHDD側のシステムファイルのバックアップを取っていこうと思っています。*1
bootファイルもMicroSDから抽出可能なので、心配症な人はMicroSDまるごと別のMicroSDにバックアップしてしまうことをおすすめします。僕はお金がなくてSD買えないので諦めました。 兎にも角にも、HDDにシステムの移行が完了しました。起動時が多少安定したように思いますね。スピンアップ音は多少聞こえますが、稼働中の回転音などは生活雑音でほぼ聞こえないので回転を止めたりなんていうことはしないでおこうと思います。
SambaNetatalk、及びminiDLNAについてはまた今度。SambaとminiDLNAは簡単なのですが、Netatalkがどうにも厄介で…

*1:まだ思っているだけなので実装していません