[簡単]Raspberry Pi のROM化をして電源ブチ切りによるファイルシステムの損傷を防ぐ

Linux

今回はRaspberry Pi のROM化をして電源ブチ切りによるファイルシステムの損傷を防ぐ方法を解説していきたいと思います。
Raspberry Pi はIoT用途に使うことも多く電源が不定期に切れる状態で使いたいということがあります。しかし、 Raspberry Pi の電源がブチ切りされるとSD Cardのシステムファイルが損傷して起動できなくなってしまうことがあります。「Raspberry Piは本当に壊れやすいのか」によると平均で20回から30回電源をブチ切りするとRaspberry Pi が故障すると書かれています。
したがって今回は Raspberry Pi の保護方法の中でも比較的かんたんなOverlayrootという方法を用いてRaspberry PiのRead Only Memory(ROM)化を行っていきたいと思います。

スポンサーリンク


環境

今回の Raspberry Pi の環境は以下のとおりです。OSはUbuntu 21.10を使っています。

PRETTY_NAME="Ubuntu 21.10"
NAME="Ubuntu"
VERSION_ID="21.10"
VERSION="21.10 (Impish Indri)"
VERSION_CODENAME=impish
ID=ubuntu
ID_LIKE=debian

設定方法

overlayrootをインストール

sudo apt update 
sudo apt install overlayroot

設定ファイル(/etc/overlayroot.conf)の書き換え

overlayを有効にするには、設定ファイルを書き換える必要があります。
初期設定ではoverlayroot='”‘となっていますが、そこの部分を以下のように書き換えます。

overlayroot="tmpfs:swap=1,recurse=0"

もし、swapが不要な場合は :swap=1 の部分を消去してください。デフォルトだと swap=0となっていてスワップが使われません。
設定を書き換えたら再起動します。

設定の確認

以下のコマンドを実行します。

mount

ログの中に以下の記述があることを確認します。

overlayroot on / type overlayfs (rw,lowerdir=/media/root-ro/,upperdir=/media/root-rw)

動作確認

動作確認をします。ホームディレクトリに不要なファイルを作成します。

touch ~/trush.txt

その後再起動して、先程のファイルが消えていることが確認できれば設定は反映されいます。

ls ~/

Overlayrootを無効化

overlayrootを有効にするとファイルシステムを変更することができなくなります。しかし、設定を再設定したい場合も出てくると思います。
その際はoverlayrootを無効化する必要があります。overlayrootの無効はoverlayroot.confを再編集することで可能です。先ほどの記述を消去して、disabledを記述します。

- overlayroot="tmpfs:swap=1,recurse=0"
+ overlayroot="disabled"

Ocerlayroot以外の手段

Raspberry PiをM.2 SSDで動かす

overlayrootを使用すればファイルシステムの損傷は防ぐことができますが、SDカードでブートしている場合はSDカードは書き込み回数の上限が低いので、長期で運用する場合はSSDを使用することを考慮に入れても良いと思います。また、副次的に処理が速くなる傾向があるというメリットもあります。

産業用(industrial)SDカードを使用する

SSDを使用する方法以外でRaspberry Piを長期運用する場合は産業用SDカードを使用することも考えられると思います。しかし、普通のSDカードに比べて割高なのでRaspberry Pi ZeroなどSSDでブートできない機種に対して使うのが良いと思います。

小型のPCを使う

Raspberry Piはどうしても、SDカードを定期的に交換する必要があるため、メンテナンスコストがかかりがちです。GPIOを使用する予定がなく、もう少しお金を出せる場合は、小型のPCもおすすめです。多くのアプリケーションを動かしたい場合は、高い性能のPCを購入し、仮想化して使うと良いと思います。

Raspberry Pi Compute Module や他のSBCを使う

Raspberry Pi Compute Module や他のSingle Board Computerを使うのも良いと思います。Raspberry Pi Compute ModuleやSBCの中にはemmcで動作するものがあるので、SDカードを使わずに運用が可能です。

タイトルとURLをコピーしました