initramfsの目標は、ルートパーティションを起動してchrootすることだと思います。ただし、常にroot = {smth}フラグがある場合、distro開発者がinitramfsを使用する理由を理解できません。
答え1
initramfsの目標は、ルートパーティションを起動してchrootすることだと思います。
正確ではありません。私が覚えているLinuxの歴史によると、initramfs(initrd)の全身がマウントされ/linuxrc
実行された後、出口(望むより古いルート変更メカニズム)。これにより、カーネルはルートインストールを処理します。後で root をインストールして root に切り替える操作が initramfs に移動され、終了しませ/init
んでした。
これは、initramfsが単純なマウントとchroot以上の機能を実行できることを示しています。
Linus Torvaldsは、initramfsの2つの理由を説明しています。:
「誰かがカーネルコードを変更したり、他の起動順序を使わなくても、初期システムをより簡単にカスタマイズできます」
「ユーザースペースには保護機能、「無限スタック」、通常はより良いインフラストラクチャ(デバッグしやすさなど)があるため、ユーザースペースで多くのことを簡単に実行できます。
ただし、常にroot = {smth}フラグがある場合、distro開発者がinitramfsを使用する理由を理解できません。
私はinitramfsを単一のコンパイラとして扱います。もちろん、技術的にはスクリプトとバイナリを含むファイルシステムですが、通常(多くの)構成が含まれていません。一部のパラメータは、ハードコーディングよりもユーザーが実行時に変更できるようにすることをお勧めします。
これにより、システムの一部を再コンパイルすることなく、ブートローダ(grubなど)のシステム起動を変更できます。 Grubでは、eメニュー項目を押すのと同じくらい簡単です。
Initramfsは/proc/cmdline
。/root