質問: initrdを使用せずにlvmにrootを置くことは可能ですか? gentooベースシステムをセットアップしたところです(つまり、起動してログインし、今すぐシステムを操作できます)。私のルートパーティションはlvm2仮想グループにあります(区切られた/bootパーティション)。起動するには、以下のパラメーターをカーネルに渡す必要があります。root=/dev/ram0 real_root=/dev/vg/rootlv init=/linuxrc dolvm どうやら、それはルートをマウントする前に何かをするために初期のramdiskを使用していると思います(lvmのものをロードしていると思います)。このコードをカーネル自体に配置して、initrdが不要になる方法はありますか?そうでない場合、どうすればinitrdを自分で作成できますか?initrdを使用せずに、lvm以外のルート用にカーネルをコンパイルしてみたところ、完全に機能したことを付け加えると便利です。それから私はすべてをlvmの下に置いてみましたが、マシンを起動できませんでした(lvmのものを処理できないと思います)。次に、genkernelツールと--lvmオプションを指定すると、現在使用している作業用カーネルとinitrdが作成されます。ここで、genkernelをスキップしてすべてを自分で実行したいと思います。できればinitrdを使用せずに、マシンの起動が少し速くなるようにします(とにかく柔軟性は必要ありません)。
回答: 編集:lvmで起動しようとしていることに気づきました。lvmをセットアップしたことがないので、lvmを必要としなかったため、おそらくここでのアプローチが機能しない可能性があります以下は、initrdのないカーネルを作成するために必要な基本的なルールです(メモリから、正確には覚えていません)。 カーネルを再コンパイルし、カーネルに組み込まれていることを確認してください(重要:モジュールではありません!): マザーボードドライバーとハードドライブドライバー(どちらもdevice driversの下) /、/etc/*、/lib/modules/*(file systemsの下)用のファイルシステムドライバー 基本的に、カーネルはルートファイルシステムをマウントし、/ etc/fstabを読み取り、他のドライバーモジュールをロードし(必要な場合)、他の非ルートファイルシステムをマウントして残りのブートプロセスを完了する必要があります。より複雑な起動プロセスがある場合、例えば次に、ネットワークブートを行うには、それらのドライバーも組み込む必要があります。 カーネルからinitrdを無効にします "一般的なセットアップ>初期ramファイルシステムとramディスク(initramfs/initrd)サポート". grub configを変更すると、init =とrealroot =が不要になり、root =をセットアップして、ルートファイルシステムデバイスを指すようにします。 それで全部だと思います。何かが発生した場合に備えて、バックアップカーネルと、起動可能なlive cdの適切なコピーを保管することを忘れないでください。うまくいかない可能性があること:間違ったドライバーでコンパイルした場合、または基本的なドライバーをモジュールとしてコンパイルした場合、カーネルはファイルシステムを読み取ることができません。新しいカーネルまたはlive cdで再起動し、正しいドライバーでカーネルを再コンパイルします。唯一の難しい部分は、どのドライバーがハードウェアに関連しているかを理解することです。 lspciおよびlshwを使用して、ハードウェアを識別できます。これらのツールをまだお持ちでない場合は、emerge lshw pciutils。