RAMにのみ書き込む読み取り専用Linuxシステムを構築する方法は?

RAMにのみ書き込む読み取り専用Linuxシステムを構築する方法は?

これは私の現在のパーティション構造です。

Filesystem            1K-blocks      Used Available Use% Mounted on
tmpfs                   127428         0    127428   0% /lib/init/rw
udev                    122976        96    122880   1% /dev
tmpfs                   127428         0    127428   0% /dev/shm
rootfs                  127428     11008    116420   9% /
/dev/sda1              1827534    933144    800029  54% /ro
rootfs.tmpfs            127428     11008    116420   9% /rw
rootfs.aufs             127428     11008    116420   9% /

私はまったく同じか、少なくとも彼に近い別のシステムを構築したいと思います。別のディスクは次のとおりですdf

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda3               678551    594050     84501  88% /
tmpfs                   124004         0    124004   0% /lib/init/rw
udev                     10240       520      9720   6% /dev
tmpfs                   124004         4    124000   1% /dev/shm
/dev/hda1                19515     15940      3575  82% /boot
/dev/hda2               253807      7002    246805   3% /var/log_compressed
tmpfs                   124004         0    124004   0% /tmp
tmpfs                   124004      3552    120452   3% /var/log
tmpfs                   124004         0    124004   0% /var/tmp
tmpfs                   124004        20    123984   1% /var/run
tmpfs                   124004         0    124004   0% /var/lock
tmpfs                   124004         0    124004   0% /var/spool

私はたくさん読んだが、unoinfsまたはinitramfsを使って設定する方法がわかりません。

助けと説明をいただきありがとうございます。私はたくさん読んだが、unoinfsやinitramfsを介してこれを行う方法がわかりません。

ベストアンサー1

どの魔女ディストリビューションを使用しているのかわかりません。 Gentooでは、独自のinitramfs初期化スクリプトを書くのに慣れています。 Initramfsは、ルートパーティションとswitch_rootを実際のルートファイルシステムにマウントし、実際のinitを実行して引き継ぐために必要なツールのみがインストールされている小さなルートファイルシステムです。

ro ルートシステムの場合は、以下を使用することをお勧めします。カボチャのファイルシステム。メインラインカーネルを完全にサポートするため、システムの速度が速くなります。 RAMオーバーレイの場合は、次のものを使用できます。一時ファイルシステム、カーネルでもサポートされています。

その後、これを単一のファイルシステムに「統合」する必要があります。私は使うオブ。メインラインカーネルはこれをサポートしておらず、ディストリビューションのカーネルパッチがそれをサポートしていない場合は、直接パッチする必要があります。 (シングルフェデレーションFSはメインラインではサポートされていません)

おそらく自分で書く方が良いでしょう。 (私はdracutとgenkernelを試しましたが、私の場合を処理するために必要なモジュールを提供していません)

  • ディレクトリの作成(私は使用します/usr/src/initramfs
  • ダウンロード静的通話中のボックス上記のディレクトリに移動します。これは、fsck、マウントなどに必要なすべてのlinux_utilsを提供する静的シェルです。

  • mkdir /usr/src/initramfs/{bin,dev,lib,mnt,sbin,tmp,etc,proc,sys}インフラのため

  • /usr/src/initramfs/initスクリプトを生成し、その中にすべてのコマンドを入れて、パーティションマウント、roファイルシステム、およびrw上書きを実行します。
  • roとrwを次に統合します。aufs マウント構文
  • 新しく作成されたルートディレクトリと不要になったアイテムに--moveマウントポイントを転送することを忘れないでください。umount
  • exec switch_root /sbin/initロードされたinitramfsのすべての内容を消去(削除)してルートに切り替えて起動を続行します。
  • カーネルにコンパイルできませんが、まだ必要なカーネルモジュールがある場合(例:オブ):次の場所にコピーしてください。/usr/src/initramfs/lib
  • /usr/src/initramfsgz、xz、cpio、または必要なものを使用して圧縮アーカイブを作成できます。
  • 生成されたアーカイブを/bootディレクトリに配置し、grubを編集してinitrdにロードします。

システムがカスタムイメージから起動するようにするには、独自のカーネルもコンパイルします。 (実際には難しくありません): Gentooカーネルドキュメント。ソースをインストールする必要がある場合は、コマンドをパッケージマネージャに置き換えます。ほとんどのディストリビューションはカーネルソースパッケージを提供します。

これを達成するためにディストリビューションを変更したい場合は、GentooまたはArchに変更することをお勧めします。他のものよりも「手動操作」に柔軟性があり、どちらも目的の形式にハッキングするための優れた文書を提供します。

おすすめ記事