48.RasPiシステムのバックアップ (2023.11.16)

RasPiを運用していてしばしば遭遇するのが、システムが壊れて起動しなくなる現象です。個人的な経験でも、ある時いきなり訪れて途方にくれることが度々ありました。壊れると言っても、恐らく起動に関わるファイルの一部が読み出しできなくなるのだと思います。RasPiはMicroSDカードを記録媒体に使っているわけですが、これにはフラッシュROMと呼ばれる書き換え可能なメモリーが使われています。実はこのメモリーは書き換えできる回数に制限があって、一般的に10万回程度と言われています。

元々デジタルカメラ等のファイル保存に使う用途だったため、この回数は全く問題無いレベルだったのですが、OSで使おうとすると頻繁にデータの書き換え(一部に集中)が行われるため、十分とは言えなくなってきます。しかも、RasPiのような制御コンピューターでは、突然電源が切断されたりプログラムの暴走等で、OSが使う一時ファイルが壊れるリスクも高くなります。手軽に扱えるのが魅力のRasPiですが、信頼性を考えると個人的にはMicroSDカードを採用したことにはやや疑問が残ります。

いずれにせよOSが壊れてしまえば、再度インストールからやり直さなくてはなりません。これは大きな手間であることから、システムが正常に動作するうちにバックアップを取って、万一の場合に速やかに復旧させるのが賢明です。そこで、どのようにすれば良いか調べたところ、バックアップと復旧を行う良いツールがあることが分かりました。

具体的にはWin32DiskImagerと呼ばれるソフトで、かなりメジャーなツールのようです。ダウンロード先は色々あるようですが、私は以下から入手しました。
●Win32DiskImagerのダウンロード

ダウンロードして解凍すると、できたフォルダの中にWin32DiskImager.exeと言うファイルがあります。これをダブルクリックすればツールが起動します。バックアップを取るためのウインドウが開くので、必要な項目を指定します。指定するのは2箇所だけなので簡単です。バックアップの保存先ファイル名を「Image File」で、どのドライブをバックアップするかを「Device」で指定します。ファイル名の拡張子は自動的には付かないので、イメージファイルを示す拡張子「.img」を忘れないように付けて下さい。拡張子が無いとWindowsでは正体不明のファイルとして扱われます。指定が終わると下に並んだボタンが有効になり、「Read」をクリックすれば読み込みが始まります。繰り返しになりますが、作られるファイルはイメージファイルです。復旧をなるべくスムーズに行うために、定期的にバックアップを取っておけば安心です。また、クリーンな状態(初期)の段階でバックアップしておくと、他でも流用できるので更に安心です。

OSを復旧するには新しいMicroSDカードを用意します。使い古しを再利用する場合、内部に不良セクタが発生している可能性もあり、場合によっては総容量自体が本来よりも少なくなっている場合があります。後述しますが、バックアップ容量よりもメディアの容量が小さい場合は書き込みできません。仮に無理やり書き込んでも正常に動作せず、無駄な時間を浪費することになるので、まずはなるべく新品を使うことをお勧めします。Win32DiskImagerで書き込む場合は、書き込むイメージファイルと書き込む側のMicroSDカードを指定します。先ほどのように下のボタンが有効になるので、「Write」をクリックすれば書き込みが始まります。

OSの書き込みだけならRaspberry Pi Imagerを使う方法もあります。今はこのツールを使ってRasPiをセットアップする形になっているので、必ず手元にあると思います。やり方は簡単で、Raspberry Pi Imagerを起動した後、OSとストレージを指定するだけです。OSは「OSを選ぶ」ボタンをクリックすると指定ダイアログが開くので、一番下まで表示を移動して「カスタムイメージを使う」を選択します。ストレージは新たに書き込むMicroSDカードのドライブを選択すれば「書き込む」ボタンが有効になるので、クリックすれば書き込みが始まります。

バックアップにしても復元にしてもかなりの時間を要します。メディアもずいぶん安くなったことですし、できれば暇な時にでも予備のMicroSDに書き込みを行って、万一の時に備えることをお勧めします。最後に注意点ですが、MicroSDカードはメーカーや商品によって微妙に総容量が異なっていて、例えば32GBを例にとっても皆同じではありません。理由は分かりませんが、これが復元を行う際に大問題となります。バックアップファイルの容量に対して書き込み側のMicroSDカードの容量がわずかでも小さいと、書き込むことができなくなるのです。容量の大小は購入して確認するしか無く、私が試したところではADATA製のメディアが適していました。復元したメディアを更なるバックアップに使わないのなら、容量が上のランクのメディア(バックアップが32GBならメディアを64GBに)に復元すれば大丈夫です。