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に変更することをお勧めします。他のものよりも「手動操作」に柔軟性があり、どちらも目的の形式にハッキングするための優れた文書を提供します。

答え2

主な問題(読み取り専用Linuxシステムの作成)のための完全な解決策ではないかもしれませんが、以下を使用してナビゲートできます。ワンチョン。インストールガイドを確認できますここしかし、自動翻訳があまり良くないので、今では完全な翻訳を上げる時間がありません。要約すると、次のようになります。

1) 必要な依存関係をインストールします。

sudo aptitude install aufs-modules-`uname-r` aufs-tools

2) インストールパッケージからここ、配布バージョンが存在する場合。

3)デフォルトでは、Letheはすべてのパーティションを固定しますが、設定ファイルを編集して変更できます(リンクされた設定ガイドを参照)。

4)このパッケージをインストールすると、GRUBメニューにカーネルラインが追加され、システムが静止aufs = tmpfs状態で起動します(すべての変更は再起動時に削除されます)。システムを変更するには、eGRUBメニューが表示されたらキーを押してこの行を削除するか、システムから削除してGRUBを更新してください。

答え3

この抜粋は以下から抜粋されました/etc/initramfs-tools/scripts/init-bottom/__rootaufs

# This is a simple overview of the steps needed to use aufs on the root file system and see the /rw and /ro  branches.
# initramfs init-botton script 
# move the root file system to aufs/unionfs readonly /ro
# root is mounted on ${rootmnt}
# create tmpfs on /rw
# create a aufs using /ro and /rw
# put some files on the tmpfs to fix mtab and fstab 
# move aufs to rootmnt to finish the init process.
# No changes to the root file system are made by this script.
#
#  Why!
#  This will allow you to use a usb flash drive and control what is written to the drive.
#  no need to rebuild the squashfs file just to add a program. 
#  boot to single user mode.  The system works the way you expect. boot aufs=tmpfs and no changes are written to the flash.
#  run ubuntu on an eeePC .

# Install 
# Install ubuntu 8.04 Hardy. Hardy has aufs installed by default
# apt-get update
# apt-get dist-upgrade
# apt-get install aufs-tools
# echo aufs >> /etc/initramfs-tools/modules
# put this file in /etc/initramfs-tools/scripts/init-bottom/rootaufs
# chmod 0755 rootaufs
# # clean up menu.lst 
# update-grub
# update-initramfs -u
# vi /boot/grub/menu.lst
# add aufs=tmpfs to the default entry. 
# do not add this line to single user mode.
# boot to single user mode in order to install software. 
# note: if your home account is on the root file system, your files are in ram and not saved.
# 

関連情報