Den virtuella Azure Linux-datorn kan inte startas och går in i dracut emergency shell
Gäller för: ✔️ Virtuella Linux-datorer
Kommentar
CentOS som refereras i den här artikeln är en Linux-distribution och kommer att nå End Of Life (EOL). Överväg att använda och planera i enlighet med detta. Mer information finns i CentOS End Of Life-vägledning.
Den här artikeln innehåller lösningar på ett problem där en virtuell Azure Linux-dator (VM) inte kan starta eftersom operativsystemets filsystem inte är tillgängligt från RAMdisk. Den virtuella datorn hamnar i dracut emergency shell.
Förutsättningar
Kontrollera att seriekonsolen är aktiverad och funktionell på den virtuella Linux-datorn.
Så här identifierar du problem med dracut-start
Om du vill identifiera ett problem med dracut-start använder du Azure Portal för att visa utdata från seriekonsolloggen för den virtuella datorn i startdiagnostikfönstret, seriekonsolfönstret eller använda AZ CLI.
Alla virtuella datorer med startproblemet hamnar i dracut- eller initramfs emergency shell och visas i slutet av seriekonsolloggen:
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)
Felsökning online
Dricks
Om du har en säkerhetskopia av den virtuella datorn nyligen återställer du den virtuella datorn från säkerhetskopian för att åtgärda startproblemet.
Seriekonsolen är den snabbaste metoden för att lösa problem. Det gör att du kan åtgärda problemet direkt utan att behöva presentera systemdisken för en virtuell återställningsdator. Se till att du uppfyller de nödvändiga förutsättningarna för distributionen. Mer information finns i Seriekonsolen för virtuella datorer för Linux.
Identifiera om den virtuella datorn hamnar i dracut emergency shell.
Försök att felsöka problemet med hjälp av Azure-seriekonsolen.
Kommentar
Alla problem kan inte åtgärdas med hjälp av Azure-seriekonsolen.
- Starta om virtuell dator (hårt) från seriekonsolen.
- Avbryt den virtuella datorn på GRUB-menyn med ESC-nyckeln .
- Välj E för att ändra den första kernelposten i GRUB-menyn.
- Gå till raden och verifiera och korrigera grub-felkonfigurationen
linux16
på följande sätt:- Fel rotenhetssökväg i GRUB-konfigurationsfilen, fel UUID- eller rotvolymnamn.
- Fel växling av enhetssökväg i GRUB-konfigurationsfilen.
- Duplicerade parametrar i GRUB-konfigurationsfilen.
- Alla uppenbara stavfel.
När du har modifierat GRUB-inställningarna manuellt väljer du Ctrl+X för att starta den virtuella datorn.
Alla ändringar som görs i det här skedet är en icke-beständig ändring. Om den virtuella datorn kan starta löser du problemet i GRUB-konfigurationsfilen, eller så återkommer den igen.
När den virtuella datorn är online igen kan du åtgärda konfigurationsproblemen i konfigurationsfilen
/etc/default/grub
och uppdatera GRUB-konfigurationen. Det gör du genom att läsa Installera om GRUB och återskapa GRUB-konfigurationsfilen.Starta om den virtuella datorn för att säkerställa att den kan startas upp utan manuella åtgärder.
Felsökning offline
Dricks
Om du har en säkerhetskopia av den virtuella datorn nyligen återställer du den virtuella datorn från säkerhetskopian för att åtgärda startproblemet.
Om Azure-seriekonsolen inte fungerar på den specifika virtuella datorn eller inte är ett alternativ i din prenumeration kan du felsöka det här problemet med hjälp av en virtuell dator för återställning/reparation. Använd vm-reparationskommandon för att skapa en reparations-VM som har en kopia av den berörda virtuella datorns OS-disk ansluten. Montera kopian av OS-filsystemen på den virtuella reparationsdatorn med hjälp av chroot.
Kommentar
Du kan också skapa en virtuell räddningsdator manuellt med hjälp av Azure Portal. Mer information finns i Felsöka en virtuell Linux-dator genom att ansluta OS-disken till en återställnings-VM med hjälp av Azure Portal.
Gå till följande avsnitt för att lösa specifika problem:
När det dracut/initramfs-relaterade startproblemet har lösts utför du följande åtgärder:
- Avsluta chroot.
- Demontera kopian av filsystemen från den virtuella datorn för räddning/reparation.
az vm repair restore
Kör kommandot för att växla den reparerade OS-disken med den virtuella datorns ursprungliga OS-disk. Mer information finns i Steg 5 i Reparera en virtuell Linux-dator med hjälp av reparationskommandona för Azure Virtual Machine.- Kontrollera om den virtuella datorn kan startas genom att titta på Azure-seriekonsolen eller genom att försöka ansluta till den virtuella datorn.
ADE-krypterad virtuell dator kan inte startas eftersom VFAT är inaktiverat
Mer information finns i ADE-krypterade virtuella datorer som inte kan startas.
Hyper-V-drivrutiner saknas
Om Hyper-V-drivrutinerna som ingår i Linux-kerneln för alla moderna Linux-distributioner är inaktiverade aktiverar du dem igen och återskapar initramfs/initrd-avbildningen. Mer information finns i Scenario 3: Andra Hyper-V-drivrutiner är inaktiverade.
Om den virtuella datorn är Red Hat och migreras från en lokal plats aktiverar du nödvändiga Hyper-V-drivrutiner i initramfsavbildningen. Mer information finns i Hyper-V-drivrutinen kunde inte ingå i den första RAM-disken när du använder en hypervisor-fil som inte är Hyper-V.
GRUB-felkonfiguration
Parametern rd.break
tvingar den virtuella datorn att starta i dracut emergency shell. Kontrollera att den här parametern inte är hårdkodad i GRUB-konfigurationsfilen.
Fel rotenhetssökväg i GRUB-konfigurationsfilen
Kontrollera om rotsökvägen root=/dev/***
i GRUB-konfigurationsfilen är korrekt. Kontrollera att rätt enhetssökväg används.
Om du befinner dig i chroot i en reparations-/räddnings-VM:
- Följ steg 1 i Felsökning offline.
/etc/default/grub
Verifiera filen, postenGRUB_CMDLINE_LINUX
och leta efter parameternroot=
om den är hårdkodad i konfigurationsfilen.- Installera om GRUB och återskapa GRUB-konfigurationsfilen.
Om du är i Azure-seriekonsolen:
- Följ steg 3 i Online-felsökning.
linux16
Verifiera raden och leta sedan efter parameternroot=
och åtgärda den.- Välj Ctrl+X för att starta den virtuella datorn.
- När den virtuella datorn har startats ändrar du
/etc/default/grub
filen, åtgärdar parameternroot
och uppdaterar GRUB-konfigurationsfilen enligt instruktionerna i Installera om GRUB och återskapa GRUB-konfigurationsfilen.
Kontrollera följande under verifieringen:
- I virtuella Ubuntu-datorer med OS-kryptering kontrollerar du att enhetsnamnet är
/dev/mapper/osencrypt
. - I virtuella datorer med Logical Volume Manager (LVM) på OS-disken är
/dev/mapper/rootvg-rootlv
rotvolymen . Samma sökväg används i virtuella RHEL-datorer med ADE OS-disk krypterad. - Kontrollera att inga enhetsnamn i form av
/dev/sdX
används eftersom de ändras mellan omstarter och att de inte är beständiga i Linux. Mer information finns i Felsöka ändringar av enhetsnamn för virtuella Linux-datorer. - Om UUID används kontrollerar du att rätt UUID för rotfilsystemet används och att syntaxen är
root=UUID=xxx-yyy-zzz
.
Fel växling av enhetssökväg i GRUB-konfigurationsfilen
I det här scenariot misslyckas en virtuell dator med att slutföra startprocessen och anger dracut emergency shell med ett fel som liknar följande:
[ 188.000765] dracut-initqueue[324]: Warning: /dev/VG/SwapVol does not exist
Starting Dracut Emergency Shell...
Warning: /dev/VG/SwapVol does not exist
GRUB-konfigurationsfilen i det här exemplet är inställd på att läsa in en logisk volym (LV) som växling med parametern rd.lvm.lv=VG/SwapVol
. Den virtuella datorn kan dock inte hitta den här LV:n under startprocessen.
Observera att det inte rekommenderas att använda en växlingsenhet på det här sättet i virtuella Azure Linux-datorer. Mer information finns i Skapa en SWAP-fil för en virtuell Azure Linux-dator.
Lös problemet genom att leta upp växlingssökvägen rd.lvm.lv=VG/SwapVol
i GRUB-konfigurationsfilen (/etc/default/grub
) och ta bort den. Gör detta genom att använda någon av följande metoder:
Om du befinner dig i chroot i en reparations-/räddnings-VM:
- Följ steg 1 i Felsökning offline.
/etc/default/grub
Redigera filen, gå till postenGRUB_CMDLINE_LINUX
, leta upp parameternrd.lvm.lv=VG/SwapVol
och ta sedan bort den från konfigurationen.- Installera om GRUB och återskapa GRUB-konfigurationsfilen.
Om du är i Azure-seriekonsolen:
- Följ steg 3 i Online-felsökning.
- Gå till raden som börjar med
linux
, leta upp parameternrd.lvm.lv=VG/SwapVol
och ta bort den. - Välj Ctrl+X för att starta den virtuella datorn.
- När den virtuella datorn har startats ändrar du
/etc/default/grub
filen, tar bort parameternrd.lvm.lv=VG/SwapVol
och uppdaterar sedan GRUB-konfigurationsfilen enligt instruktionerna i avsnittet Installera om GRUB och återskapa GRUB-konfigurationsfilen .
Duplicerade parametrar i GRUB-konfigurationsfilen
Kontrollera om det finns duplicerade parametrar i GRUB-konfigurationsfilen:
Om du befinner dig i chroot i en reparations-/räddnings-VM:
- Följ steg 1 i Felsökning offline.
/etc/default/grub
Verifiera filen och postenGRUB_CMDLINE_LINUX
.- Leta efter duplicerade parametrar och ta bort dem.
- Uppdatera GRUB-konfigurationsfilen. Mer information finns i Installera om GRUB och återskapa GRUB-konfigurationsfilen.
Om du är i Azure-seriekonsolen:
- Följ steg 3 i Online-felsökning.
linux16
Verifiera raden, leta efter duplicerade parametrar och ta bort dem.- Välj Ctrl+X för att starta den virtuella datorn.
- När den virtuella datorn har startats ändrar du
/etc/default/grub
filen i enlighet med detta, åtgärdar konfigurationsproblemen som tidigare identifierats och uppdaterar GRUB-konfigurationsfilen enligt instruktionerna i Installera om GRUB och återskapa GRUB-konfigurationsfilen.
Rotfilsystemet skadas
När rotfilsystemet är skadat kan det inte monteras från initrd/initramfs-avbildningen.
Om du vill åtgärda rotfilsystemets skada följer du anvisningarna i Felsöka problem med start av virtuella Linux-datorer på grund av filsystemfel – Utför filsystemreparation.
Problem med LVM-aktivering
Vissa problem kan uppstå när du kommer åt den fysiska LVM-volymen (PV), volymgruppen (VG) och/eller den logiska volymen (LV). De kan inte adresseras från Azure-seriekonsolen. Lös dem genom att använda en virtuell reparations-/räddningsdator.
Följ steg 1 i Felsökning offline.
Du kan identifiera problemen genom att köra följande kommandon och ta en titt på kommandoutdata.
Identifiera vilken enhet som motsvarar OS-disken och kontrollera om den identifieras som en PV:
lsblk pvs
Kontrollera om den
rootvg
virtuella nätverkssäkerhetsgruppen har identifierats:vgs
Kontrollera om LV har identifierats:
lvs
Felsöka följande vanliga LVM-fel som orsakar problem med åtkomst till rotvolymen:
Okänd PV när rootvg VG bara har en enda PV (det här är standardkonfigurationen för Azure)
Partitionen som innehåller PV:en tas felaktigt bort, storleksändras eller skapas. Information om hur du löser det här problemet finns i Rotpartition saknas.
Okänd PV när rootvg VG ändras och delas över mer än en disk
Att ha 2 PV:er i den virtuella rotvg-filen är inte en rekommenderad konfiguration. I det här scenariot kan datadisken kopplas från den virtuella datorn och de logiska rootvg-volymerna är inte längre tillgängliga. Lös problemet genom att koppla den ursprungliga disken till den virtuella datorn igen och starta om den.
Om PV:en inte kan återställas utför du en återställning från säkerhetskopian.
Rotpartition saknas
Rotfilsystemet kan vara otillgängligt på grund av vissa problem som uppstår på partitionsnivå under partitionsändringsåtgärder eller andra.
I det här scenariot, om du har dokumenterat den ursprungliga partitionstabelllayouten, med de exakta start- och slutsektorerna för var och en av de ursprungliga partitionerna (och inga ytterligare ändringar görs i systemet, till exempel när nya filsystem skapas), återskapar du partitionerna med samma ursprungliga layout. Du kan göra detta med verktyg som fdisk
(för MBR-partitionstabeller) eller gdisk
(för GPT-partitionstabeller) för att få åtkomst till det otillgängliga filsystemet. Följ den här återställningsåtgärden från en virtuell reparations-/räddningsdator. Mer information finns i avsnittet Felsökning offline .
Om den här metoden inte fungerar rekommenderar vi att du utför en återställning från säkerhetskopian.
Initrd- eller initramfs-skada
Initrd/initramfs-avbildningen har en viss nivå av skada som gör att rotvolymen monteras och operativsystemets startprocess misslyckas.
Lös problemet genom att följa dessa steg inifrån chroot i en virtuell reparations-/räddningsdator:
- Följ steg 1 i Felsökning offline.
- Återskapa saknade initramfs manuellt.
- Starta om den virtuella datorn för att bekräfta om den kan startas.
Nästa steg
Om det specifika startfelet inte är ett problem med dracut eller initramfs kan du läsa Felsöka startfel för virtuella Azure Linux-datorer för ytterligare felsökningsalternativ.
Kontakta oss för att få hjälp
Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.