Azure virtuele Linux-machine kan niet worden opgestart en komt in de dracut-noodshell terecht.

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.

Overzicht

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

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 de Azure-portal om in het deelvenster Diagnostische gegevens over opstarten of in het deelvenster Seriële console de uitvoer van het seriële consolelogboek van de virtuele machine weer te geven, of gebruikt u AZ CLI.

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 dracut-noodshell terechtkomt.

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

    Notitie

    Niet elk probleem kan worden opgelost met behulp van de Azure seriële 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, los dit probleem op in het GRUB-configuratiebestand, anders zal het opnieuw optreden.

  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.

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

  1. Als de Azure seriële console niet werkt op 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. Mount de kopie van de besturingssysteem bestanden in de herstel-VM met behulp van chroot.

    Notitie

    U kunt ook handmatig een reddings-VM maken met behulp van de Azure-portal. Zie voor meer informatie Problemen oplossen met een Linux-VM door de OS-schijf aan een herstel-VM te koppelen via het Azure-portaal.

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

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

    1. Verlaat chroot.
    2. Ontkoppel de kopie van de bestandssystemen van de herstel-/reparatie-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 Een virtuele Linux-machine opnieuw maken met behulp van de Azure virtuele-machineherstelopdrachten voor meer informatie.
    4. Controleer of de VM kan worden opgestart door de Azure seriële 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 die zijn opgenomen 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 vanuit de on-premises omgeving wordt gemigreerd, schakelt u de vereiste Hyper-V-stuurprogramma's in het initramfs-image in. Voor meer informatie, zie Het Hyper-V-stuurprogramma kon niet worden opgenomen in de eerste RAM-schijf bij gebruik van een niet-Hyper-V-hypervisor.

GRUB-misconfiguratie

De rd.break parameter forceert de virtuele machine om op te starten in de dracut-noodshell. 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. Voor meer informatie, zie Problemen met de naam van Linux-VM-apparaten oplossen.
  • 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 VM het opstartproces niet voltooien en komt die in de dracut-noodshell terecht 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 om een logisch volume (LV) te laden als swap 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 Azure Linux-VM's niet wordt aanbevolen. Zie Maak een SWAP-bestand voor een Azure Linux-VM 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:

Gekopieerde 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 je in de Azure seriële console bent:

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

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 Azure seriële 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 PV.

      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:

    • Unknown PV wanneer de rootvg VG slechts één PV heeft (dit is de standaard Azure-configuratie)

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

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

      Het gebruik van 2 PV'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 PV 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-afbeelding heeft enige mate van beschadiging, waardoor het koppelen van het hoofdvolume en het starten van 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 Roubleshoot Azure Linux-Virtual Machines opstartfouten voor verdere probleemoplossingsopties.