Dela via


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.

  1. Identifiera om den virtuella datorn hamnar i dracut emergency shell.

  2. 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.

    1. Starta om virtuell dator (hårt) från seriekonsolen.
    2. Avbryt den virtuella datorn på GRUB-menyn med ESC-nyckeln .
    3. Välj E för att ändra den första kernelposten i GRUB-menyn.
    4. Gå till raden och verifiera och korrigera grub-felkonfigurationen linux16 på följande sätt:
  3. 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.

  4. 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.

  5. 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.

  1. 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.

  2. Gå till följande avsnitt för att lösa specifika problem:

  3. När det dracut/initramfs-relaterade startproblemet har lösts utför du följande åtgärder:

    1. Avsluta chroot.
    2. Demontera kopian av filsystemen från den virtuella datorn för räddning/reparation.
    3. 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.
    4. 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.

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-rootlvrotvolymen . 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:

    1. Följ steg 1 i Felsökning offline.
    2. /etc/default/grub Redigera filen, gå till postenGRUB_CMDLINE_LINUX, leta upp parametern rd.lvm.lv=VG/SwapVol och ta sedan bort den från konfigurationen.
    3. Installera om GRUB och återskapa GRUB-konfigurationsfilen.
  • Om du är i Azure-seriekonsolen:

    1. Följ steg 3 i Online-felsökning.
    2. Gå till raden som börjar med linux, leta upp parametern rd.lvm.lv=VG/SwapVol och ta bort den.
    3. Välj Ctrl+X för att starta den virtuella datorn.
    4. När den virtuella datorn har startats ändrar du /etc/default/grub filen, tar bort parametern rd.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:

    1. Följ steg 1 i Felsökning offline.
    2. /etc/default/grub Verifiera filen och postenGRUB_CMDLINE_LINUX.
    3. Leta efter duplicerade parametrar och ta bort dem.
    4. Uppdatera GRUB-konfigurationsfilen. Mer information finns i Installera om GRUB och återskapa GRUB-konfigurationsfilen.
  • Om du är i Azure-seriekonsolen:

    1. Följ steg 3 i Online-felsökning.
    2. linux16 Verifiera raden, leta efter duplicerade parametrar och ta bort dem.
    3. Välj Ctrl+X för att starta den virtuella datorn.
    4. 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.

  1. Följ steg 1 i Felsökning offline.

  2. Du kan identifiera problemen genom att köra följande kommandon och ta en titt på kommandoutdata.

    1. Identifiera vilken enhet som motsvarar OS-disken och kontrollera om den identifieras som en PV:

      lsblk
      pvs
      
    2. Kontrollera om den rootvg virtuella nätverkssäkerhetsgruppen har identifierats:

      vgs
      
    3. Kontrollera om LV har identifierats:

      lvs
      
  3. 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.

  4. 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:

  1. Följ steg 1 i Felsökning offline.
  2. Återskapa saknade initramfs manuellt.
  3. 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.