web-dev-qa-db-ja.com

initrdなしで起動できるようにカーネルにパッチを適用する

' Linuxが起動時に初期RAMディスクを使用するのはなぜですか? 'の最初の答えは、initrd /初期RAMファイルシステムが実際のルートファイルシステムをマウントするためのドライバーを提供するために使用されることを示しています。また、これらのドライバーをカーネルにパッチすることは可能であるため、initrdまたは初期RAMファイルシステムは必要ありませんが、方法の説明はありません。カーネル(最新バージョン)にパッチを適用して、initrdを使用せずにルートにEXT4ファイルシステムをマウントするにはどうすればよいですか?このソリューションはUUIDsをサポートしますか?

2
Billy

何もパッチを当てる必要はありません。カーネルを自分で構成してコンパイルするだけです。これは高度なタスクであるため、初心者向けではありません。秘訣は、ハードウェアのみをサポートするようにカーネルを構成し、モジュールとしてではなくカーネル内のすべてをコンパイルすることです(少なくとも、起動に必要なドライバー:ディスクコントローラー、ファイルシステムなど)。

カーネルを構成およびコンパイルする方法については、たくさんのチュートリアルがあります

だから、グーグル「カーネルコンパイル{あなたのディストリビューション}」だけ。ディストリビューションに適切なチュートリアルを使用することが重要です。使用しているディストリビューションは、「バニラ」カーネルではなく「ディストリビューション」カーネルでのみ利用可能な機能を期待している場合があります。正しいチュートリアルでは、正しいソースを紹介します。

/etc/fstabでUUIDを使用できますが、initrd/initramfsを削除した後、GRUBでは使用できません。

たとえば、私はGentooを使用していますが、initrd/initramfsを使用したことはありません。新しいカーネルが利用可能になるたびに、自分で構成してコンパイルする必要があります。 root=/dev/sdb4カーネルパラメーターでgrubを使用していますが、fstabではUUIDを使用しています。

4
j123b567