Welche Beziehung besteht zwischen Dracut und Initramfs?

Welche Beziehung besteht zwischen Dracut und Initramfs?

Wenn beim Booten ein Fehler auftritt, wird im System eine Eingabeaufforderung mit dem Text „dracut“ angezeigt.

Meines Wissens wird Dracut verwendet, um ein Image von Initramfs zu erzeugen. Was mich verwirrt, ist, dass es sich, da ich zu einer Shell mit dem Namen „Dracut“ wechsle, nicht nur um ein Hilfsprogramm zum Erzeugen von Initramfs zu handeln scheint, sondern tatsächlich auch um ein eigenständiges Programm, das beim Booten ausgeführt wird. Ist das richtig? - Wenn das oben Gesagte zutrifft, was ist dann der Unterschied/die Beziehung zwischen Initramfs und Dracut?

Antwort1

Dracut ist sowohl ein Tool zum Generieren einer Instanz von initramfs als auch eine sogenannte Dracut-Notfall-Shell. Der Zweck von initramfs besteht darin, eine Umgebung bereitzustellen, die das Root-Dateisystem finden, laden und zur Ausführung an dieses übergeben kann. Wenn während dieses Vorgangs zu irgendeinem Zeitpunkt etwas schief geht, wechselt initramfs zur Dracut-Notfall-Shell und gibt Ihnen die Möglichkeit, das Problem zu debuggen bzw. zu beheben.

Zum Kommentar:

"Das würde ich gerne tun. Um das klarzustellen: Ursprünglich war es so, dass ich eine VMWare-VM hatte, auf der RHEL lief. Aufgrund eines Problems beim direkten Importieren von VMs in VMWare Workstation habe ich beschlossen, die Festplatte der VM einfach von ESXi auf eine neue VM in VMWare Workstation zu ziehen. Wenn ich jedoch versuche, die VM zu booten, kann ich GRUB und anschließend dracut erfolgreich laden, aber dracut kann das Root-Dateisystem nicht finden. Das ist seltsam, denn man würde erwarten, dass das System, wenn dracut geladen werden könnte, auch das Root-Dateisystem finden könnte."

Wenn Sie RHEL installieren, generiert dracut eine Instanz von initramfs, die nur die Treiber enthält, die für die Kompatibilität mit der Hardware erforderlich sind, auf der das Betriebssystem installiert wurde. Als ich die Festplatte meiner RHEL-Instanz von ESXi auf einer virtuellen Hardware auf VMWare Workstation, eine andere virtuelle Hardware, verschoben habe, verfügte das mit dem Kernel verknüpfte initramfs nicht mehr über den entsprechenden Treibersatz, der zum Suchen und Laden des Root-Dateisystems erforderlich ist.

Um das Problem zu beheben, müssen Sie vor dem Verschieben der Festplatte Folgendes ausführen dracut --force --no-hostonly. Zitathttps://fedoramagazine.org/initramfs-dracut-and-the-dracut-emergency-shell/

Der Parameter force teilt dracut mit, dass das vorhandene initramfs-Archiv überschrieben werden darf. Der Parameter no-hostonly überschreibt das Standardverhalten, nur Treiber einzuschließen, die für den aktuell laufenden Computer relevant sind, und veranlasst dracut, stattdessen alle Treiber in das initramfs einzuschließen.

Das bedeutet, dass Dracut nun „aufgebläht“ ist und alle erforderlichen Treiber für den Fall hat, dass die Festplatte verschoben wird. Nachdem Sie die Festplatte verschoben haben, müssen Sie Dracut erneut ausführen, um dracut --forceeine abgespeckte Version von Dracut zu erstellen.

verwandte Informationen