Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
Bepaal of uw virtuele machine in de dracut-noodshell terechtkomt.
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.
- 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
linux16regel en valideer en corrigeer GRUB-onjuiste configuratie als volgt:- Verkeerd root apparaatpad in het GRUB-configuratiebestand, verkeerde UUID of root volumenaam.
- 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, los dit probleem op in het GRUB-configuratiebestand, anders zal het opnieuw optreden.
Zodra de VIRTUELE machine weer online is, lost u de configuratieproblemen in het
/etc/default/grubconfiguratiebestand 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.
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.
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.
Ga naar de volgende secties om specifieke problemen op te lossen:
Nadat het opstartprobleem met dracut/initramfs is opgelost, voert u de volgende acties uit:
- Verlaat chroot.
- Ontkoppel de kopie van de bestandssystemen van de herstel-/reparatie-VM.
- Voer de
az vm repair restoreopdracht 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. - 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.
Als u zich in chroot bevindt in een herstel-/reddings-VM:
- Volg stap 1 in Offline probleemoplossing.
- Valideer het
/etc/default/grubbestand, deGRUB_CMDLINE_LINUXvermelding en zoek naar deroot=parameter voor het geval het in het configuratiebestand is vastgelegd. - Installeer GRUB opnieuw en genereer het GRUB-configuratiebestand opnieuw.
Als je in de Azure seriële console bent:
- Volg stap 3 in Online probleemoplossing.
- Valideer de
linux16regel 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/grubbestand, lost u derootparameter 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-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/sdXworden 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:
Als u zich in chroot bevindt in een herstel-/reddings-VM:
- Volg stap 1 in Offline probleemoplossing.
- Bewerk het
/etc/default/grubbestand, ga naar deGRUB_CMDLINE_LINUXvermelding, zoek derd.lvm.lv=VG/SwapVolparameter en verwijder het uit de configuratie. - Installeer GRUB opnieuw en genereer het GRUB-configuratiebestand opnieuw.
Als je in de Azure seriële console bent:
- Volg stap 3 in Online probleemoplossing.
- Ga naar de regel die begint met
linux, zoek derd.lvm.lv=VG/SwapVolparameter en verwijder deze. - Selecteer Ctrl+X om de virtuele machine op te starten.
- Zodra de VM is opgestart, wijzigt u het
/etc/default/grubbestand, verwijdert u derd.lvm.lv=VG/SwapVolparameter en werkt u het GRUB-configuratiebestand bij, zoals wordt aangegeven in de sectie Grub opnieuw installeren en grub-configuratiebestand opnieuw genereren.
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:
- Volg stap 1 in Offline probleemoplossing.
- Valideer het
/etc/default/grubbestand en deGRUB_CMDLINE_LINUXvermelding. - 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 je in de Azure seriële console bent:
- Volg stap 3 in Online probleemoplossing.
- Valideer de
linux16lijn, 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/grubbestand 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.
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 PV.
lsblk pvsControleer of de
rootvgVG is gedetecteerd:vgsControleer of de LV is gedetecteerd:
lvs
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.
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:
- 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 Roubleshoot Azure Linux-Virtual Machines opstartfouten voor verdere probleemoplossingsopties.