web-dev-qa-db-ja.com

Linux:ルートファイルシステムを読み取り専用にロックする

私は、いくつかの機械を制御する産業用コンピューター(読み取り:メンテナンス中以外はキーボード/マウス/モニターなし)を持っています。オペレーティングシステムはLinuxになります(OpenSuSEが望ましいですが、厳密な要件ではありません)。ソフトウェアは、連続する起動の間に何も保存する必要はありません。

エンドユーザーは、shutdown -h nowコマンドなどを送信せずに、いつでもコンピューターの電源をオフにして、コンピューターのシャットダウンを待たないようにしたいと考えています。それを実現するために、おそらく aufs のユニオンマウントを使用して、ルートファイルシステムを備えたSSDが読み取り専用にアクセスされ、決して書き込まれないようにします。

Live USB stick OpenSuSE wikiの記事には、フラッシュドライブ上のOSで* .isoをddするだけと書かれています。 SSDでも動作すると思います。しかし、SSDにISO9660ファイルシステムを持たせたくありません。 OpenSuSEをext2/3/4やXFSなどに適切にインストールしてから、SSDの書き込みをロックし、すべての書き込み要求をaufsを介してRAMディスクにリダイレクトできますか?

これを実装する方法についてのヒントを教えてください。

4
ScumCoder

これを実現するには、起動時に使用されるinitrdイメージに変更を加える必要があります。

ハウツー:読み取り専用のLinuxシステムを構築する をご覧ください。これは、Ubuntuシステムでそれを行う方法を説明しています。 Suseのinitramfsインフラストラクチャは少し異なることは間違いありませんが、適応するのは難しいことではありません。

または、ライブディストリビューションがどのように実行しているかを確認し、関連するビットを抽出して、現在のinitrdに追加します。 initrdはcpioアーカイブであり、cpioで抽出し、initスクリプトを確認します。ここで、すべての魔法が起こります。

私はknoppixがそれをどのように行うかについてよりよく知っていますが、おそらくsuseが非常に似たようなことをすることに気付くでしょう:

  • ルートファイルシステムを読み取り専用でマウントする
  • 読み取り/書き込みブランチ用にtmpfsをマウントします
  • それらをaufsで重ねます
  • ルートファイルシステムを変更するには、pivot_rootを使用します。
0
lemonsqueeze