OTG接続用にPiZero2Wをセットアップする その2 (Overlay FS)
元の記事が長くなってしまったので、Overlay File Systemの設定については別記事に切り出しました。
ここまでの設定では、PiZero2Wの電源を切る際に毎回shutdownコマンドを実行してきました。しかし、実際の運用時にSSHでshutdownコマンドを毎回実行するのは手間です。可能であればいきなりUSBケーブルを引っこ抜いてしまいたいですよね?
RasPiならできます。Overlay File Systemという仕組みが提供されています。
Overlay File System
Overlay FSは、物理的なファイルシステムをメモリ上に構築した仮想的なファイルシステムでオーバーレイし、ファイルへの書き込みをストレージではなくメモリ上に保持する仕組みです (かなり適当な説明です)。
Overlay FSを有効にすると、いきなり電源を切ってもストレージ (ここではmicroSD) 上のファイルが壊れなくなるというメリットがあります。移動運用時は何があるか分かりませんし、毎回SSHでshutdownを実行するのも面倒ですので、Overlay FSを有効にしてUSBケーブルを引っこ抜いてOKな運用にしましょう。
なお、編集したファイルを保存してもストレージには保存されません (電源オフ/再起動で破棄されます) のでご注意下さい。
設定
PiZero2Wにsshでログインし、raspi-configを起動します。
$ sudo raspi-config
Performance Options -> Overlay File Systemと選択します。
Overlay FSを有効にするか聞かれますので、Yesを選択します。
有効になりました。Okを選択して続けます。
さらに、起動用のファイルが格納されているbootパーティションの書き込みを禁止するか確認されます。通常は書き込み可にしておく理由はないので、Yesを選択します。
bootパーティションの書き込みが禁止されました。Okで続けます。
以上で設定は完了ですので、メイン画面に戻ってFinishを選択してPiZero2Wを再起動すると、Overlay FSが有効になります。
動作確認
再起動してOverlay FSが有効になっている状態でSSHでログインし、適当にファイルを作成し、catで中身を確認したら再起動します。
$ echo test > ~/tmp.txt
$ cat ~/tmp.txt
test
$ sudo reboot
再起動したら改めてSSHでログインし、catでファイルの中身を確認してみてください。
$ cat ~/tmp.txt
cat: ~/tmp.txt: No such file or directory
そんなファイルねーよと怒られました。作成したはずのファイルが再起動することできれいさっぱり消えていることを確認できました。
注意点
再起動後はOverlay FSが有効になっていますので、ファイルを編集して保存しても、再起動すると変更は破棄されて元に戻ります。また、USBケーブルを引っこ抜いて電源を切っても、基本的にファイルは壊れなくなります。
セキュリティアップデートを実行したり、設定ファイルを編集したりしたい場合は、上記と同じ手順でOverlay FSを無効にして再起動する必要があります。Overlay FSが無効になればこれまで通り、ファイル編集がストレージに保存できるようになりますが、電源を切る際はshutdownコマンドで適切にOSを終了しなければなりません。
その3に戻ります。