Delen via


Virtuele Azure Linux-machine kan niet worden opgestart en voert de noodshell in

Van toepassing op: ✔️ Virtuele Linux-machines

Notitie

CentOS waarnaar in dit artikel wordt verwezen, is een Linux-distributie en bereikt het einde van de levensduur (EOL). Houd rekening met uw gebruik en plan dienovereenkomstig. Zie De richtlijnen voor het einde van de levensduur van CentOS voor meer informatie.

Dit artikel bevat oplossingen voor een probleem waarbij een virtuele Azure Linux-machine (VM) niet kan worden opgestart omdat het besturingssysteembestandssysteem niet toegankelijk is vanuit de RAMdisk. De VIRTUELE machine komt terecht in de noodshell voor noodgeval.

Voorwaarden

Zorg ervoor dat de seriële console is ingeschakeld en functioneel is in de Virtuele Linux-machine.

Dracut-opstartprobleem identificeren

Als u een dracut-opstartprobleem wilt identificeren, gebruikt u Azure Portal om de uitvoer van het seriële consolelogboek van de VIRTUELE machine weer te geven in het deelvenster Diagnostische gegevens over opstarten, het deelvenster seriële console of om AZ CLI te gebruiken.

Alle VM's met het opstartprobleem komen terecht in de dracut- of initramfs-shell voor noodgevallen en worden weergegeven aan het einde van het seriële consolelogboek:

  • 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)
    

Online probleemoplossing

Tip

Als u een recente back-up van de virtuele machine hebt, herstelt u de VIRTUELE machine vanuit de back-up om het opstartprobleem op te lossen.

De seriële console is de snelste methode om problemen op te lossen. Hiermee kunt u het probleem rechtstreeks oplossen zonder dat u de systeemschijf hoeft te presenteren aan een herstel-VM. Zorg ervoor dat u voldoet aan de vereiste vereisten voor uw distributie. Zie seriële console voor virtuele machines voor Linux voor meer informatie.

  1. Bepaal of uw VIRTUELE machine in de noodshell terechtkomt.

  2. Probeer het probleem op te lossen met behulp van de seriële Console van Azure.

    Notitie

    Niet elk probleem kan worden opgelost met behulp van de seriële Azure-console.

    1. Start de VM opnieuw op (hard) vanuit de seriële console.
    2. Onderbreek uw VIRTUELE machine in het GRUB-menu met de ESC-toets .
    3. Selecteer E om de eerste kernelvermelding in het GRUB-menu te wijzigen.
    4. Ga naar de linux16 regel en valideer en corrigeer GRUB-onjuiste configuratie als volgt:
  3. Nadat u de GRUB-instellingen handmatig hebt gewijzigd, selecteert u Ctrl+X om de VIRTUELE machine op te starten.

    Elke wijziging die in deze fase wordt uitgevoerd, is een niet-permanente wijziging. Als de VIRTUELE machine kan opstarten, lost u dit probleem op in het GRUB-configuratiebestand of wordt het opnieuw uitgevoerd.

  4. Zodra de VIRTUELE machine weer online is, lost u de configuratieproblemen in het /etc/default/grub configuratiebestand op en werkt u de GRUB-configuratie bij. Zie GRUB opnieuw installeren en GRUB-configuratiebestand opnieuw genereren om dit te doen.

  5. Start de VIRTUELE machine opnieuw op om ervoor te zorgen dat deze zonder handmatige tussenkomst kan worden opgestart.

Problemen met offline oplossen

Tip

Als u een recente back-up van de virtuele machine hebt, herstelt u de VIRTUELE machine vanuit de back-up om het opstartprobleem op te lossen.

  1. Als de seriële Azure-console niet werkt in de specifieke VM of geen optie in uw abonnement is, kunt u dit probleem oplossen met behulp van een herstel-/herstel-VM. Gebruik vm-herstelopdrachten om een herstel-VM te maken waarop een kopie van de besturingssysteemschijf van de betreffende VM is gekoppeld. Koppel de kopie van de besturingssysteembestandssystemen in de herstel-VM met behulp van chroot.

  2. Ga naar de volgende secties om specifieke problemen op te lossen:

  3. Nadat het opstartprobleem met betrekking tot dracut/initramfs is opgelost, voert u de volgende acties uit:

    1. Sluit chroot.
    2. Ontkoppel de kopie van de bestandssystemen van de herstel-/herstel-VM.
    3. Voer de az vm repair restore opdracht uit om de herstelde besturingssysteemschijf te wisselen met de oorspronkelijke besturingssysteemschijf van de virtuele machine. Zie stap 5 in Het herstellen van een Virtuele Linux-machine met behulp van de herstelopdrachten voor virtuele Azure-machines voor meer informatie.
    4. Controleer of de VIRTUELE machine kan worden opgestart door de seriële Azure-console te bekijken of door verbinding te maken met de virtuele machine.

De versleutelde ADE-VM kan niet worden opgestart omdat VFAT is uitgeschakeld

Zie voor meer informatie, zie ADE versleutelde VM's niet opstarten.

Hyper-V-stuurprogramma's ontbreken

Als de Hyper-V-stuurprogramma's in de Linux-kernel van alle moderne Linux-distributies zijn uitgeschakeld, schakelt u deze opnieuw in en genereert u de initramfs/initrd-installatiekopieën opnieuw. Zie Scenario 3: Andere Hyper-V-stuurprogramma's zijn uitgeschakeld voor meer informatie.

Als de VIRTUELE machine Red Hat is en vanaf on-premises wordt gemigreerd, schakelt u de vereiste Hyper-V-stuurprogramma's in de initramfs-installatiekopie in. Zie Het Hyper-V-stuurprogramma kan niet worden opgenomen in de eerste RAM-schijf wanneer u een niet-Hyper-V-hypervisor gebruikt.

GRUB-onjuiste configuratie

De rd.break parameter dwingt de VIRTUELE machine op te starten in de noodshell voor dracut. Zorg ervoor dat deze parameter niet is vastgelegd in het GRUB-configuratiebestand.

Onjuist pad naar hoofdapparaat in GRUB-configuratiebestand

Controleer of het hoofdpad root=/dev/*** in het GRUB-configuratiebestand juist is. Zorg ervoor dat het juiste apparaatpad wordt gebruikt.

Zorg er tijdens deze validatie voor dat het volgende gebeurt:

  • Zorg ervoor dat in Ubuntu-VM's met besturingssysteemversleuteling de naam van het apparaat is /dev/mapper/osencrypt.
  • In VM's met Logical Volume Manager (LVM) op de besturingssysteemschijf is /dev/mapper/rootvg-rootlvhet hoofdvolume. Hetzelfde pad wordt gebruikt in RHEL-VM's waarbij de ADE OS-schijf is versleuteld.
  • Zorg ervoor dat er geen apparaatnamen in de vorm van /dev/sdX worden gebruikt, omdat ze veranderen bij opnieuw opstarten en niet permanent zijn in Linux. Zie Problemen met de naam van linux-VM-apparaten oplossen voor meer informatie.
  • Als UUID's worden gebruikt, controleert u of de juiste UUID van het hoofdbestandssysteem wordt gebruikt en de syntaxis is root=UUID=xxx-yyy-zzz.

Verkeerd pad voor wisselen van apparaat in GRUB-configuratiebestand

In dit scenario kan een VIRTUELE machine het opstartproces niet voltooien en wordt de noodshell met een fout die vergelijkbaar is met de volgende:

[  188.000765] dracut-initqueue[324]: Warning: /dev/VG/SwapVol does not exist
         Starting Dracut Emergency Shell...
Warning: /dev/VG/SwapVol does not exist

Het GRUB-configuratiebestand in dit voorbeeld is ingesteld op het laden van een logisch volume (LV) als wisseling met de parameter rd.lvm.lv=VG/SwapVol. De VM kan deze LV echter niet vinden tijdens het opstartproces.

Het is belangrijk te weten dat het gebruik van een wisselapparaat op deze manier in Virtuele Azure Linux-machines niet wordt aanbevolen. Zie Een SWAP-bestand maken voor een Virtuele Linux-machine in Azure voor meer informatie.

Als u dit probleem wilt oplossen, zoekt u het wisselpad rd.lvm.lv=VG/SwapVol in het GRUB-configuratiebestand (/etc/default/grub) en verwijdert u het. Gebruik hiervoor een van de volgende methoden:

Gedupliceerde parameters in GRUB-configuratiebestand

Controleer of er dubbele parameters zijn in het GRUB-configuratiebestand:

  • Als u zich in chroot bevindt in een herstel-/reddings-VM:

    1. Volg stap 1 in Offline probleemoplossing.
    2. Valideer het /etc/default/grub bestand en de GRUB_CMDLINE_LINUX vermelding.
    3. Zoek naar gedupliceerde parameters en verwijder deze.
    4. Werk het GRUB-configuratiebestand bij. Zie GRUB opnieuw installeren en GRUB-configuratiebestand opnieuw genereren voor meer informatie.
  • Als u zich in de seriële Console van Azure hebt:

    1. Volg stap 3 in Online probleemoplossing.
    2. Valideer de linux16 lijn, zoek naar gedupliceerde parameters en verwijder deze.
    3. Selecteer Ctrl+X om de virtuele machine op te starten.
    4. Zodra de VM is opgestart, wijzigt u het /etc/default/grub bestand dienovereenkomstig, lost u de eerder geïdentificeerde configuratieproblemen op en werkt u het GRUB-configuratiebestand bij, zoals wordt aangegeven in Grub opnieuw installeren en grub-configuratiebestand opnieuw genereren.

Beschadiging van hoofdbestandssysteem

Wanneer het hoofdbestandssysteem is beschadigd, kan het niet worden gekoppeld vanuit de initrd/initramfs-installatiekopieën.

Als u de beschadiging van het hoofdbestandssysteem wilt oplossen, volgt u de instructies in Opstartproblemen met virtuele Linux-machines oplossen vanwege bestandssysteemfouten: bestandssysteemherstel uitvoeren.

Problemen met LVM-activering

Sommige problemen kunnen optreden wanneer u toegang hebt tot het fysieke LVM-volume (PV), volumegroep (VG) en/of logisch volume (LV). Ze kunnen niet worden geadresseerd vanuit de seriële Azure-console. Gebruik een herstel-/reddings-VM om ze op te lossen.

  1. Volg stap 1 in Offline probleemoplossing.

  2. Als u de problemen wilt identificeren, voert u de volgende opdrachten uit en bekijkt u de uitvoer van de opdrachten.

    1. Bepaal welk apparaat overeenkomt met de besturingssysteemschijf en controleer of het is gedetecteerd als een HW:

      lsblk
      pvs
      
    2. Controleer of de rootvg VG is gedetecteerd:

      vgs
      
    3. Controleer of de LV is gedetecteerd:

      lvs
      
  3. Los de volgende veelvoorkomende LVM-fouten op die problemen veroorzaken bij het openen van het hoofdvolume:

    • Onbekende HW wanneer de rootvg VG slechts één HW heeft (dit is de standaardConfiguratie van Azure)

      De partitie met de HW wordt onjuist verwijderd, gewijzigd of gemaakt. Zie Hoofdpartitie ontbreekt om dit probleem op te lossen.

    • Onbekende HW wanneer de rootvg VG wordt gewijzigd en verdeeld over meer dan één schijf

      Het gebruik van 2V's in de rootvg VG is geen aanbevolen configuratie. In dit scenario kan de gegevensschijf worden losgekoppeld van de virtuele machine en zijn de logische rootvg-volumes niet meer toegankelijk. U kunt dit probleem oplossen door de oorspronkelijke schijf opnieuw aan de virtuele machine te koppelen en opnieuw op te starten.

  4. Als de HW onherstelbaar is, voert u een herstelbewerking uit vanuit een back-up.

Hoofdpartitie ontbreekt

Het hoofdbestandssysteem is mogelijk niet toegankelijk vanwege enkele problemen die optreden op partitieniveau tijdens het wijzigen van de grootte van partities of andere.

In dit scenario, als u de oorspronkelijke partitietabelindeling hebt gedocumenteerd, met de exacte begin- en eindsectoren voor elk van de oorspronkelijke partities (en er worden geen verdere wijzigingen uitgevoerd op het systeem, zoals het maken van nieuwe bestandssystemen), maakt u de partities opnieuw met dezelfde oorspronkelijke indeling. U kunt dit doen met hulpprogramma's zoals fdisk (voor MBR-partitietabellen) of gdisk (voor GPT-partitietabellen) om toegang te krijgen tot het niet-toegankelijke bestandssysteem. Volg deze herstelbewerking vanaf een herstel-/reddings-VM. Zie de sectie Offline probleemoplossing voor meer informatie.

Als deze methode niet werkt, raden we u aan een herstelbewerking uit te voeren vanuit een back-up.

Initrd of initramfs corruptie

De initrd/initramfs-installatiekopieën hebben een aantal beschadigingen waardoor het hoofdvolume wordt gekoppeld en het opstartproces van het besturingssysteem mislukt.

Volg deze stappen vanuit chroot in een herstel-/reddings-VM om dit probleem op te lossen:

  1. Volg stap 1 in Offline probleemoplossing.
  2. Genereer ontbrekende initramfs handmatig opnieuw.
  3. Start de VIRTUELE machine opnieuw op om te bevestigen of deze kan worden opgestart.

Volgende stappen

Als de specifieke opstartfout geen dracut- of initramfs-probleem is, raadpleegt u Opstartfouten in Azure Linux Virtual Machines oplossen voor verdere probleemoplossingsopties.

Contacteer ons voor hulp

Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.