web-dev-qa-db-ja.com

dracutとinitramfsの関係は何ですか?

起動エラーが発生すると、システムがdracutというプロンプトにドロップするのがわかります。

Dracutはinitramfsのイメージを生成するために使用されると私は理解しています。私が混乱しているのは、「dracut」というタイトルのシェルにドロップしているという事実に基づいて、それはinitramfsを生成するためのユーティリティプログラムではないように見えるだけでなく、実際にはそれ自体がプログラムであるということです。起動時に実行されます。これは正しいです? -上記が正確である場合、initramfsとdracutの違い/関係は何ですか?

2
Grant Curell

Dracutは、initramfsのインスタンスを生成するためのツールであると同時に、dracut緊急シェルと呼ばれるものも備えています。 initramfsの目的は、実行を検索、ロード、およびルートファイルシステムに渡すことができる環境を提供することです。このプロセス中に問題が発生した場合、initramfsはdracut緊急シェルにドロップし、問題のデバッグ/修復を試みる機会を提供します。

コメントについて:

「喜んで。明確にするために、最初に起こったことは、VMWare VM RHELを実行していることでした。VMをVMWareWorkstationに直接インポートする際の問題のため、VMをプルすることにしましたESXiからVMWareWorkstationの新しいVMにハードドライブ。ただし、VMを起動しようとすると、GRUB以降、正常にロードできます。 dracutですが、dracutはルートファイルシステムを見つけることができません。dracutがロードできれば、システムもルートファイルシステムを見つけることができると予想されるため、これは奇妙なことです。」

RHELをインストールすると、dracutは、OSがインストールされたハードウェアとの互換性に必要なドライバーのみを含むinitramfsのインスタンスを生成します。 RHELインスタンスのハードドライブを1セットの仮想ハードウェア上のESXiから別のセットの仮想ハードウェアであるVMWareWorkstationに移動すると、カーネルに関連付けられたinitramfsに、ルートファイルシステムの検索とロードに必要な適切なドライバーのセットがなくなりました。 。

この問題を解決するには、ハードドライブを移動する前に、dracut --force --no-hostonlyを実行する必要があります。引用するには https://fedoramagazine.org/initramfs-dracut-and-the-dracut-emergency-Shell/

Forceパラメーターは、既存のinitramfsアーカイブを上書きしても問題がないことをdracutに通知します。 no-hostonlyパラメーターは、現在実行中のコンピューターに密接に関係するドライバーのみを含めるというデフォルトの動作をオーバーライドし、代わりにdracutがすべてのドライバーをinitramfsに含めるようにします。

これは、dracutが「肥大化」し、ハードドライブの移動時に必要なすべての該当するドライバーが含まれることを意味します。ハードドライブの移動が終了したら、dracut --forceを使用してdracutを再実行し、軽量バージョンのdracutを再生成する必要があります。

2
Grant Curell