私はGentooベースシステムを設定しました(つまり、起動してログインしていくつかの操作を実行できます)。私のルートパーティションはLVM2仮想グループ(別の/boot
パーティションを含む)にあります。起動するには、次のパラメータをカーネルに渡す必要があります。
root=/dev/ram0 real_root=/dev/vg/rootlv init=/linuxrc dolvm
明らかに、初期のRAMディスクを使用してルートをマウントする前に作業を実行します(私の推測ではLVMエントリをロードする)。 initrdが必要ないように、このコードをカーネル自体に入れる方法はありますか?そうでない場合、どのように直接initrdを作成できますか?
役に立つかもしれない追加の注意:initrdなしでLVM以外のルートをカーネルでコンパイルしようとしましたが、うまくいきました。その後、すべてをLVMの下に置こうとしましたが、コンピュータを起動できませんでした(LVMタスクを処理できなかったようです)。その後、genkernel
そのオプションと一緒にツールを使用して、--lvm
現在使用中の動作カーネルとinitrdを作成しました。
genkernel
今、私はマシンがより速く起動するようにinitrdなしですべてを直接スキップしたいと思います(とにかく柔軟性は必要ありません)。
ベストアンサー1
簡単な答え:いいえ。 LVMが必要な場合はinitrdが必要です。
しかし、以前に他の人が言ったように、LVMはシステムの速度を遅くしたり悪いことをしないでください。
initrdを使用すると、カーネルをロードできます。カーネルがLVMドライブにある場合は、カーネルを含むバイナリをロードする前にLVM環境全体を設定する必要があります。
確認するinitrdのWikipediaエントリinitrdが何をするのか、そしてこれが必要な理由について説明します。
もう一つの注意:自分で仕事をしたいあなたの意図を理解してください。しかし、genkernelを使用しても手が汚れている可能性があります。 genkernel --menuconfig allを使用すると、デフォルトではツールサポートなしでカーネルを構築するのと同じようにすべてを設定できます。 genkernel は make bzImage、makemodules、makemodules_install の行を追加し、不快な initrd 操作を実行します。
明らかに説明されているようにinitrdを直接作成できます。ここにinitramfsがありますまたはここにinitrdがあります。