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.
Bepaal of uw VIRTUELE machine in de noodshell terechtkomt.
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.
- Start de VM opnieuw op (hard) vanuit de seriële console.
- Onderbreek uw VIRTUELE machine in het GRUB-menu met de ESC-toets .
- Selecteer E om de eerste kernelvermelding in het GRUB-menu te wijzigen.
- Ga naar de
linux16
regel en valideer en corrigeer GRUB-onjuiste configuratie als volgt:- Verkeerde hoofdmap van het apparaatpad in het GRUB-configuratiebestand, verkeerde UUID- of hoofdvolumenaam.
- Verkeerd pad voor wisselen van apparaat in GRUB-configuratiebestand.
- Gedupliceerde parameters in het GRUB-configuratiebestand.
- Elke duidelijke typfout.
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.
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.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.
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.
Notitie
U kunt ook handmatig een reddings-VM maken met behulp van Azure Portal. Zie Problemen met een Virtuele Linux-machine oplossen door de besturingssysteemschijf te koppelen aan een herstel-VM met behulp van Azure Portal.
Ga naar de volgende secties om specifieke problemen op te lossen:
Nadat het opstartprobleem met betrekking tot dracut/initramfs is opgelost, voert u de volgende acties uit:
- Sluit chroot.
- Ontkoppel de kopie van de bestandssystemen van de herstel-/herstel-VM.
- 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. - 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.
Als u zich in chroot bevindt in een herstel-/reddings-VM:
- Volg stap 1 in Offline probleemoplossing.
- Valideer het
/etc/default/grub
bestand, deGRUB_CMDLINE_LINUX
vermelding en zoek naar deroot=
parameter voor het geval het in het configuratiebestand is vastgelegd. - Installeer GRUB opnieuw en genereer het GRUB-configuratiebestand opnieuw.
Als u zich in de seriële Console van Azure hebt:
- Volg stap 3 in Online probleemoplossing.
- Valideer de
linux16
regel en zoek naar deroot=
parameter en los deze op. - Selecteer Ctrl+X om de virtuele machine op te starten.
- Zodra de VM is opgestart, wijzigt u het
/etc/default/grub
bestand, lost u deroot
parameter op en werkt u het GRUB-configuratiebestand bij, zoals wordt aangegeven in Grub opnieuw installeren en het GRUB-configuratiebestand opnieuw genereren.
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-rootlv
het 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:
Als u zich in chroot bevindt in een herstel-/reddings-VM:
- Volg stap 1 in Offline probleemoplossing.
- Bewerk het
/etc/default/grub
bestand, ga naar deGRUB_CMDLINE_LINUX
vermelding, zoek derd.lvm.lv=VG/SwapVol
parameter en verwijder het uit de configuratie. - Installeer GRUB opnieuw en genereer het GRUB-configuratiebestand opnieuw.
Als u zich in de seriële Console van Azure hebt:
- Volg stap 3 in Online probleemoplossing.
- Ga naar de regel die begint met
linux
, zoek derd.lvm.lv=VG/SwapVol
parameter en verwijder deze. - Selecteer Ctrl+X om de virtuele machine op te starten.
- Zodra de VM is opgestart, wijzigt u het
/etc/default/grub
bestand, verwijdert u derd.lvm.lv=VG/SwapVol
parameter en werkt u het GRUB-configuratiebestand bij, zoals wordt aangegeven in de sectie Grub opnieuw installeren en grub-configuratiebestand opnieuw genereren.
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:
- Volg stap 1 in Offline probleemoplossing.
- Valideer het
/etc/default/grub
bestand en deGRUB_CMDLINE_LINUX
vermelding. - Zoek naar gedupliceerde parameters en verwijder deze.
- 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:
- Volg stap 3 in Online probleemoplossing.
- Valideer de
linux16
lijn, zoek naar gedupliceerde parameters en verwijder deze. - Selecteer Ctrl+X om de virtuele machine op te starten.
- 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.
Volg stap 1 in Offline probleemoplossing.
Als u de problemen wilt identificeren, voert u de volgende opdrachten uit en bekijkt u de uitvoer van de opdrachten.
Bepaal welk apparaat overeenkomt met de besturingssysteemschijf en controleer of het is gedetecteerd als een HW:
lsblk pvs
Controleer of de
rootvg
VG is gedetecteerd:vgs
Controleer of de LV is gedetecteerd:
lvs
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.
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:
- Volg stap 1 in Offline probleemoplossing.
- Genereer ontbrekende initramfs handmatig opnieuw.
- 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.