私の初期の質問システムがinitramfs
シェルによってブロックされました。後、通信会社そしてトムYanは、ドライバーの欠落とその後のドライバーのバージョンの不一致が原因で私の問題が発生したことを発見しました。だから私は彼らのアドバイスに従って問題を解決しました。
しかし、カーネルのコンパイルオプションをあまりにも修正しました。代わりに、システムの起動時に再び停止することをmaking clean
直接発見しました。問題を解決するために、ドライバがカーネルにコンパイルされたかどうかを修正して確認しました。make bzImage
initramfs
rootdealy
渡すこの回答、私はカーネルが実行されたとおりに再コンパイルしてインストールしました。ただし、ハードドライブまたはカーネルのバージョンは変更せず、カーネル設定オプションのみを変更しました。では、initramfs
との生産の間には何らかの関係があるようですbzImage
。
私の質問::
答え:
答え1
理論的な答えは「状況によって異なります」です。
実際、私はinitramfsがカーネルから独立している可能性がある状況を意図的に見たことがありません。 (私が知る限り)ほとんどのシステムはコアごとにinitramfsを生成します。
initramfsの実際のユースケースは、カーネルモジュールをロードすることです。今後ルートファイルシステムをマウントします。これは、ルートファイルシステムにカーネルに静的にコンパイルされていない特別なドライバが必要な場合に発生する鶏と卵の問題を解決します。これを行うには、initramfsにロードするカーネルモジュールのコピーを含める必要があります。
コンパイルされたカーネルモジュールはカーネルの設定によってバイナリの違いがある可能性があるため、設定を変更するには新しいカーネルモジュールをコンパイルしてからinitramfsにパッケージ化する必要があります。
同様に、一部のモジュールを静的にコンパイルまたは動的にロードできる場合は、モジュールを動的にロードするように構成を変更するには、そのモジュールをinitramfsに追加する必要があります。
静的にコンパイルされた正しいモジュールを含むカーネルがあるとしましょう。これにより、カーネルを再コンパイルするたびに Initramfs を変更する必要がなくなります。上記のように、私は実際にこれが起こっているのを見たことがありません。