Der virtuelle Azure Linux-Computer kann nicht gestartet werden und wechselt in die Dracut-Notfallshell.
Gilt für: ✔️ Linux-VMs
Notiz
CentOS, auf das in diesem Artikel verwiesen wird, ist eine Linux-Verteilung und wird End Of Life (EOL) erreichen. Sie sollten sich Ihre Nutzung dieser Distribution ansehen und entsprechend planen. Weitere Informationen finden Sie unter CentOS End Of Life Guidance.
Dieser Artikel enthält Lösungen für ein Problem, bei dem ein virtueller Azure Linux-Computer (VM) nicht starten kann, da auf das Betriebssystemdateisystem nicht über die RAMdisk zugegriffen werden kann. Die VM landet in der Dracut-Notfallshell.
Voraussetzungen
Stellen Sie sicher, dass die serielle Konsole in der Linux-VM aktiviert und funktionsfähig ist.
Identifizieren des Dracut-Startproblems
Verwenden Sie zum Identifizieren eines Dracut-Startproblems die Azure-Portal, um die Ausgabe des seriellen Konsolenprotokolls der VM im Startdiagnosebereich, im seriellen Konsolenbereich anzuzeigen oder AZ CLI zu verwenden.
Alle virtuellen Computer mit dem Startproblem landen in der Dracut- oder Initramfs-Notfallshell und werden am Ende des seriellen Konsolenprotokolls angezeigt:
RHEL/CentOS/SLES/Oracle Linux:
[ 201.935612] dracut-initqueue[455]: Warning: dracut-initqueue timeout - starting timeout scripts [ 201.941153] dracut-initqueue[455]: Warning: Could not boot. Starting Setup Virtual Console... [[0;32m OK [0m] Started Setup Virtual Console. Starting Dracut Emergency Shell... Warning: /dev/mapper/rootvg-rootlv does not exist Generating "/run/initramfs/rdsosreport.txt" Entering emergency mode. Exit the shell to continue. Type "journalctl" to view system logs. You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot after mounting them and attach it to a bug report. dracut:/#
Ubuntu:
mdadm: No arrays found in config file or automatically done. Gave up waiting for root file system device. Common problems: - Boot args (cat /proc/cmdline) - Check rootdelay= (did the system wait long enough?) - Missing modules (cat /proc/modules; ls /dev) ALERT! /dev/mapper/osencrypt does not exist. Dropping to a shell! BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.4) built-in shell (ash) Enter 'help' for a list of built-in commands. (initramfs)
Onlineproblembehandlung
Tipp
Wenn Sie über eine kürzliche Sicherung der VM verfügen, stellen Sie den virtuellen Computer aus der Sicherung wieder her, um das Startproblem zu beheben.
Die serielle Konsole ist die schnellste Methode zum Beheben von Problemen. Es ermöglicht Ihnen, das Problem direkt zu beheben, ohne den Systemdatenträger auf einer Wiederherstellungs-VM präsentieren zu müssen. Stellen Sie sicher, dass Sie die erforderlichen Voraussetzungen für Ihre Verteilung erfüllen. Weitere Informationen finden Sie in der seriellen Konsole für virtuelle Computer für Linux.
Ermitteln Sie, ob Ihre VM in der Dracut-Notfallshell landet.
Versuchen Sie, das Problem mithilfe der seriellen Azure-Konsole zu beheben.
Notiz
Nicht jedes Problem kann mithilfe der seriellen Azure-Konsole behoben werden.
- Trigger Restart VM (Hard) from the serial console.
- Unterbrechen Sie Ihren virtuellen Computer im GRUB-Menü mit der ESC-Taste .
- Wählen Sie "E " aus, um den ersten Kerneleintrag im GRUB-Menü zu ändern.
- Wechseln Sie zur
linux16
Zeile, und überprüfen Und korrigieren Sie dann GRUB-Fehlkonfiguration wie folgt:- Falscher Stammgerätepfad in der GRUB-Konfigurationsdatei, falsche UUID- oder Stammvolumenamen.
- Falsches Austauschen des Gerätepfads in der GRUB-Konfigurationsdatei.
- Doppelte Parameter in der GRUB-Konfigurationsdatei.
- Alle offensichtlichen Tippfehler.
Nachdem Sie die GRUB-Einstellungen manuell geändert haben, wählen Sie STRG+X aus, um den virtuellen Computer zu starten.
Jede Änderung, die zu diesem Zeitpunkt erfolgt ist, ist eine nicht persistente Änderung. Wenn der virtuelle Computer gestartet werden kann, beheben Sie dieses Problem in der GRUB-Konfigurationsdatei, oder sie tritt erneut auf.
Sobald der virtuelle Computer wieder online ist, beheben Sie die Konfigurationsprobleme in der
/etc/default/grub
Konfigurationsdatei, und aktualisieren Sie die GRUB-Konfiguration. Lesen Sie hierzu die Erneute Installation von GRUB, und generieren Sie die GRUB-Konfigurationsdatei erneut.Starten Sie den virtuellen Computer neu, um sicherzustellen, dass er ohne manuelle Eingriffe gestartet werden kann.
Offlineproblembehandlung
Tipp
Wenn Sie über eine kürzliche Sicherung der VM verfügen, stellen Sie den virtuellen Computer aus der Sicherung wieder her, um das Startproblem zu beheben.
Falls die serielle Azure-Konsole nicht in der jeweiligen VM funktioniert oder keine Option in Ihrem Abonnement ist, beheben Sie dieses Problem mithilfe einer Rettungs-/Reparatur-VM. Verwenden Sie vm-Reparaturbefehle , um eine Reparatur-VM zu erstellen, die über eine Kopie des Betriebssystemdatenträgers der betroffenen VM verfügt. Mount the copy of the OS file systems in the repair VM by using chroot.
Notiz
Alternativ können Sie mithilfe des Azure-Portals manuell eine Rettungs-VM erstellen. Weitere Informationen finden Sie unter Beheben von Problemen mit einer Linux-VM durch Hinzufügen des Betriebssystemdatenträgers zu einer Wiederherstellungs-VM im Azure-Portal.
Wechseln Sie zu den folgenden Abschnitten, um bestimmte Probleme zu beheben:
Führen Sie nach dem Beheben des dracut/initramfs-bezogenen Startproblems die folgenden Aktionen aus:
- Beenden Sie chroot.
- Heben Sie die Bereitstellung der Kopie der Dateisysteme vom virtuellen Rettungs-/Reparaturcomputer auf.
- Führen Sie den
az vm repair restore
Befehl aus, um den reparierten Betriebssystemdatenträger mit dem ursprünglichen Betriebssystemdatenträger der VM auszutauschen. Weitere Informationen finden Sie in Schritt 5 zum Reparieren einer Linux-VM mithilfe der Reparaturbefehle für virtuelle Azure-Computer. - Überprüfen Sie, ob der virtuelle Computer gestartet werden kann, indem Sie sich die serielle Azure-Konsole ansehen oder versuchen, eine Verbindung mit der VM herzustellen.
ADE-verschlüsselte VM kann nicht gestartet werden, da VFAT deaktiviert ist
Weitere Informationen finden Sie unter ADE-verschlüsselte VMs, die nicht gestartet werden können.
Hyper-V-Treiber fehlen
Wenn die im Linux-Kernel enthaltenen Hyper-V-Treiber aller modernen Linux-Distributionen deaktiviert sind, aktivieren Sie sie erneut, und regenerieren Sie das Initramfs/initrd-Image. Weitere Informationen finden Sie unter Szenario 3: Andere Hyper-V-Treiber sind deaktiviert.
Wenn der virtuelle Computer Red Hat ist und von der lokalen Bereitstellung migriert wird, aktivieren Sie die erforderlichen Hyper-V-Treiber im Initramfs-Image. Weitere Informationen finden Sie unter Der Hyper-V-Treiber konnte nicht in den ursprünglichen RAM-Datenträger aufgenommen werden, wenn ein Nicht-Hyper-V-Hypervisor verwendet wird.
GRUB-Fehlkonfiguration
Der rd.break
Parameter zwingt die VM, in der Dracut-Notfallshell zu starten. Stellen Sie sicher, dass dieser Parameter in der GRUB-Konfigurationsdatei nicht hartcodiert ist.
Falscher Stammgerätepfad in der GRUB-Konfigurationsdatei
Überprüfen Sie, ob der Stammpfad root=/dev/***
in der GRUB-Konfigurationsdatei korrekt ist. Stellen Sie sicher, dass der richtige Gerätepfad verwendet wird.
Wenn Sie sich in einer Reparatur-/Rettungs-VM befinden:
- Führen Sie Schritt 1 in der Offline-Problembehandlung aus.
- Überprüfen Sie die
/etc/default/grub
Datei, denGRUB_CMDLINE_LINUX
Eintrag, und suchen Sie nach demroot=
Parameter, falls sie in der Konfigurationsdatei hartcodiert ist. - Installieren Sie GRUB erneut, und generieren Sie die GRUB-Konfigurationsdatei erneut.
Wenn Sie sich in der seriellen Azure-Konsole befinden:
- Führen Sie Schritt 3 in der Online-Problembehandlung aus.
- Überprüfen Sie die
linux16
Zeile, und suchen Sie dann nach demroot=
Parameter, und korrigieren Sie sie. - Wählen Sie STRG+X aus, um den virtuellen Computer zu starten.
- Nachdem der virtuelle Computer erfolgreich gestartet wurde, ändern Sie die
/etc/default/grub
Datei, korrigieren Sie denroot
Parameter, und aktualisieren Sie die GRUB-Konfigurationsdatei, wie in der Installation von GRUB beschrieben, und generieren Sie die GRUB-Konfigurationsdatei erneut.
Stellen Sie während dieser Überprüfung folgendes sicher:
- Stellen Sie in Ubuntu-VMs mit Betriebssystemverschlüsselung sicher, dass der Gerätename lautet
/dev/mapper/osencrypt
. - In VMs mit logischem Volume-Manager (LVM) auf dem Betriebssystemdatenträger ist
/dev/mapper/rootvg-rootlv
das Stammvolume . Derselbe Pfad wird in RHEL-VMs mit verschlüsseltem ADE-Betriebssystemdatenträger verwendet. - Stellen Sie sicher, dass keine Gerätenamen in Form verwendet
/dev/sdX
werden, da sie sich über Neustarts ändern und in Linux nicht beständig sind. Weitere Informationen finden Sie unter Problembehandlung bei Änderungen des Linux-VM-Gerätenamens. - Wenn UUIDs verwendet werden, stellen Sie sicher, dass das richtige Stammdateisystem UUID verwendet wird und die Syntax lautet
root=UUID=xxx-yyy-zzz
.
Falsches Austauschen des Gerätepfads in der GRUB-Konfigurationsdatei
In diesem Szenario kann ein virtueller Computer den Startvorgang nicht abschließen und die Dracut-Notfallshell mit einem Fehler wie den folgenden eingeben:
[ 188.000765] dracut-initqueue[324]: Warning: /dev/VG/SwapVol does not exist
Starting Dracut Emergency Shell...
Warning: /dev/VG/SwapVol does not exist
Die GRUB-Konfigurationsdatei in diesem Beispiel ist so festgelegt, dass ein logisches Volume (LV) als Swap mit dem Parameter rd.lvm.lv=VG/SwapVol
geladen wird. Der virtuelle Computer kann diesen LV jedoch während des Startvorgangs nicht finden.
Es ist wichtig zu beachten, dass die Verwendung eines Swap-Geräts auf diese Weise in Azure Linux-VMs nicht empfohlen wird. Weitere Informationen finden Sie unter Erstellen einer SWAP-Datei für einen virtuellen Azure Linux-Computer.
Um dieses Problem zu beheben, suchen Sie den Swappfad rd.lvm.lv=VG/SwapVol
in der GRUB-Konfigurationsdatei (/etc/default/grub
) und entfernen Sie es. Verwenden Sie hierzu eine der folgenden Methoden:
Wenn Sie sich in einer Reparatur-/Rettungs-VM befinden:
- Führen Sie Schritt 1 in der Offline-Problembehandlung aus.
- Bearbeiten Sie die
/etc/default/grub
Datei, wechseln Sie zumGRUB_CMDLINE_LINUX
Eintrag, suchen Sie denrd.lvm.lv=VG/SwapVol
Parameter, und entfernen Sie sie dann aus der Konfiguration. - Installieren Sie GRUB erneut, und generieren Sie die GRUB-Konfigurationsdatei erneut.
Wenn Sie sich in der seriellen Azure-Konsole befinden:
- Führen Sie Schritt 3 in der Online-Problembehandlung aus.
- Wechseln Sie zu der Zeile beginnend mit
linux
, suchen Sie denrd.lvm.lv=VG/SwapVol
Parameter, und entfernen Sie ihn. - Wählen Sie STRG+X aus, um den virtuellen Computer zu starten.
- Nachdem der virtuelle Computer erfolgreich gestartet wurde, ändern Sie die
/etc/default/grub
Datei, entfernen Sie denrd.lvm.lv=VG/SwapVol
Parameter, und aktualisieren Sie dann die GRUB-Konfigurationsdatei, wie im Abschnitt "Grub neu installieren" beschrieben, und regenerieren Sie die GRUB-Konfigurationsdatei .
Duplizierte Parameter in GRUB-Konfigurationsdatei
Überprüfen Sie, ob in der GRUB-Konfigurationsdatei doppelte Parameter vorhanden sind:
Wenn Sie sich in einer Reparatur-/Rettungs-VM befinden:
- Führen Sie Schritt 1 in der Offline-Problembehandlung aus.
- Überprüfen Sie die
/etc/default/grub
Datei und denGRUB_CMDLINE_LINUX
Eintrag. - Suchen Sie nach doppelten Parametern, und entfernen Sie sie.
- Aktualisieren Sie die GRUB-Konfigurationsdatei. Weitere Informationen finden Sie unter Erneutes Installieren von GRUB und erneutes Generieren der GRUB-Konfigurationsdatei.
Wenn Sie sich in der seriellen Azure-Konsole befinden:
- Führen Sie Schritt 3 in der Online-Problembehandlung aus.
- Überprüfen Sie die
linux16
Zeile, suchen Sie nach doppelten Parametern, und entfernen Sie sie. - Wählen Sie STRG+X aus, um den virtuellen Computer zu starten.
- Nachdem der virtuelle Computer erfolgreich gestartet wurde, ändern Sie die
/etc/default/grub
Datei entsprechend, beheben Sie die zuvor identifizierten Konfigurationsprobleme, und aktualisieren Sie die GRUB-Konfigurationsdatei, wie in der Installation von GRUB beschrieben, und generieren Sie die GRUB-Konfigurationsdatei erneut.
Stammdateisystembeschädigung
Wenn das Stammdateisystem beschädigt ist, kann es nicht aus dem Initrd/initramfs-Image bereitgestellt werden.
Um die Beschädigung des Stammdateisystems zu beheben, befolgen Sie die Anweisungen in der Problembehandlung bei Startproblemen des virtuellen Linux-Computers aufgrund von Dateisystemfehlern – Führen Sie die Dateisystemreparatur durch.
Probleme bei der LVM-Aktivierung
Einige Probleme können auftreten, wenn Sie auf das physische LVM-Volume (PV), die Volumegruppe (VG) und/oder das logische Volume (LV) zugreifen. Sie können nicht über die serielle Azure-Konsole adressiert werden. Um sie zu beheben, verwenden Sie eine Reparatur-/Rettungs-VM.
Führen Sie Schritt 1 in der Offline-Problembehandlung aus.
Um die Probleme zu identifizieren, führen Sie die folgenden Befehle aus, und sehen Sie sich die Befehlsausgabe an.
Ermitteln Sie, welches Gerät dem Betriebssystemdatenträger entspricht, und überprüfen Sie, ob es als PV erkannt wird:
lsblk pvs
Überprüfen Sie, ob die
rootvg
VG erkannt wird:vgs
Überprüfen Sie, ob das LV erkannt wird:
lvs
Behandeln Sie die folgenden allgemeinen LVM-Fehler, die Probleme beim Zugriff auf das Stammvolume verursachen:
Unbekannter PV-Wert, wenn das Rootvg-VG nur über eine einzelne PV verfügt (dies ist die Standard-Azure-Konfiguration)
Die Partition, die die PV-Datei hält, wird fälschlicherweise gelöscht, verkleinert oder erstellt. Informationen zum Beheben dieses Problems finden Sie unter "Stammpartition fehlt".
Unbekannter PV-Wert, wenn das Rootvg-VG geändert und auf mehrere Datenträger aufgeteilt wird
Das Vorhandensein von 2 PVs im rootvg VG ist keine empfohlene Konfiguration. In diesem Szenario kann der Datenträger vom virtuellen Computer getrennt werden, und auf die logischen Rootvg-Volumes kann nicht mehr zugegriffen werden. Um dieses Problem zu beheben, trennen Sie den ursprünglichen Datenträger erneut an den virtuellen Computer, und starten Sie es neu.
Wenn die PV nicht wiederhergestellt werden kann, führen Sie eine Wiederherstellung aus der Sicherung durch.
Die Stammpartition fehlt.
Auf das Stammdateisystem kann aufgrund einiger Probleme, die bei Partitionsänderungsvorgängen oder anderen Partitionsänderungsvorgängen auftreten, möglicherweise nicht auf das Stammdateisystem zugegriffen werden.
Wenn Sie in diesem Szenario das ursprüngliche Partitionstabellenlayout dokumentiert haben, mit den genauen Anfangs- und Endbereichen für jede der ursprünglichen Partitionen (und keine weiteren Änderungen am System vorgenommen werden, z. B. die Erstellung neuer Dateisysteme), erstellen Sie die Partitionen mit demselben ursprünglichen Layout neu. Sie können dies mit Tools wie fdisk
(für MBR-Partitionstabellen) oder gdisk
(für GPT-Partitionstabellen) tun, um Zugriff auf das nicht zugängliche Dateisystem zu erhalten. Folgen Sie diesem Wiederherstellungsvorgang von einer Reparatur-/Rettungs-VM. Weitere Informationen finden Sie im Abschnitt zur Offline-Problembehandlung .
Wenn dieser Ansatz nicht funktioniert, empfehlen wir, eine Wiederherstellung aus der Sicherung auszuführen.
Initrd- oder Initramfsbeschädigung
Das Image "initrd/initramfs" weist eine gewisse Beschädigungsstufe auf, wodurch das Einbinden des Stammvolumes und das Starten des Betriebssystemstartvorgangs fehlschlägt.
Führen Sie die folgenden Schritte aus, um dieses Problem zu beheben:
- Führen Sie Schritt 1 in der Offline-Problembehandlung aus.
- Manuelles Generieren fehlender Initramfs.
- Starten Sie den virtuellen Computer neu, um zu bestätigen, ob er gestartet werden kann.
Nächste Schritte
Falls der spezifische Startfehler kein Problem mit Dracut oder Initramfs ist, finden Sie informationen zur Problembehandlung bei Startfehlern bei virtuellen Azure Linux-Computern für weitere Problembehandlungsoptionen.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.