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
Opmerking
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
In dit artikel worden meerdere voorwaarden besproken die problemen met GRUB-reddingsacties veroorzaken en richtlijnen voor probleemoplossing bieden.
Tijdens het opstartproces probeert het opstartlaadprogramma de Linux-kernel te vinden en het opstartbeheer af te geven. Als deze overdracht niet kan worden uitgevoerd, wordt de virtuele machine (VM) naar een GRUB rescue-console geleid. De prompt van de GRUB rescue-console wordt niet weergegeven in het Azure seriële consolelogboek, maar kan worden weergegeven in de schermopname Azure diagnostische opstartgegevens.
Probleem met GRUB-reddingsactie identificeren
Schermafbeelding van diagnostische gegevens over opstarten weergeven op de pagina Boot diagnostics van de Azure-portal. Deze schermopname helpt bij het vaststellen van het probleem met GRUB rescue en bepalen of een opstartfout het probleem veroorzaakt.
De volgende tekst is een voorbeeld van een GRUB-reddingsprobleem:
error: file '/boot/grub2/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>
Problemen met GRUB rescue offline oplossen
Voor het oplossen van een GRUB-reddingsprobleem is een herstel-/reparatie-VM vereist. 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.
Opmerking
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.
Identificeer GRUB rescue-probleem. Wanneer u een van de volgende GRUB-reddingsproblemen tegenkomt, gaat u naar de bijbehorende sectie om dit op te lossen:
Nadat het probleem met GRUB rescue is opgelost, voert u de volgende acties uit:
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 virtuele machine kan starten door de Azure serieconsole te bekijken of door te proberen verbinding te maken met de virtuele machine.
Als de hele
/bootpartitie of andere belangrijke inhoud ontbreekt en niet kan worden hersteld, raden we u aan de virtuele machine te herstellen vanuit een back-up. Zie Het herstellen van Azure VM-gegevens in Azure portal voor meer informatie.
Zie de volgende secties voor gedetailleerde fouten, mogelijke oorzaken en oplossingen.
Opmerking
Vervang in de opdrachten die worden genoemd in de volgende secties /dev/sdX door het bijbehorende OS-schijfapparaat.
Installeer GRUB opnieuw en genereer het GRUB-configuratiebestand opnieuw met behulp van Azure Automatisch herstellen van Linux
Azure ALAR-scripts (Linux Auto Repair) maken deel uit van de VM-herstelextensie die wordt beschreven in Use Azure Linux Auto Repair (ALAR) voor het herstellen van een Linux-VM. ALAR behandelt de automatisering van meerdere reparatiescenario's, waaronder GRUB-reddingsproblemen.
De ALAR-scripts gebruiken de reparatie-extensie repair-button om GRUB-problemen op te lossen door op te --button-command grubfix geven voor VM's van de eerste generatie of --button-command efifix voor vm's van de tweede generatie. Met deze parameter wordt het geautomatiseerde herstel geactiveerd. Implementeer de volgende opdrachten om de fix van veelvoorkomende GRUB-fouten te automatiseren door GRUB opnieuw te installeren en het bijbehorende configuratiebestand opnieuw te genereren:
Linux-VM's zonder UEFI (BIOS- Gen1):
az extension add -n vm-repair az extension update -n vm-repair az vm repair repair-button --button-command 'grubfix' --verbose $RGNAME --name $VMNAMELinux-VM's met UEFI (Gen2):
az extension add -n vm-repair az extension update -n vm-repair az vm repair repair-button --button-command 'efifix' --verbose $RGNAME --name $VMNAME
Belangrijk
Vervang de naam $RGNAME van de resourcegroep en de NAAM van $VMNAME de VM dienovereenkomstig.
Het herstel-VM-script, in combinatie met het ALAR-script, maakt tijdelijk een resourcegroep, een herstel-VM en een kopie van de besturingssysteemschijf van de betreffende VM. Het installeert GRUB opnieuw, genereert het bijbehorende GRUB-configuratiebestand opnieuw en wisselt vervolgens de besturingssysteemschijf van de verbroken VM om met de gekopieerde vaste schijf. Ten slotte wordt met het repair-button script automatisch de resourcegroep verwijderd die de tijdelijke herstel-VM bevat.
Installeer GRUB opnieuw en genereer het GRUB-configuratiebestand handmatig
Controleer of er een herstel-VM is gemaakt. Als deze niet is gemaakt, voert u stap 1 uit in Problemen met GRUB-herstelmodus offline oplossen om de virtuele machine te maken. Koppel alle vereiste bestandssystemen, inclusief
/en/bootin de herstel-/reparatie-VM, en voer vervolgens de chroot-omgeving in.Installeer GRUB opnieuw en genereer het bijbehorende GRUB-configuratiebestand opnieuw met behulp van een van de volgende opdrachten:
RHEL/CentOS/Oracle 7.x/8.x/9.x Linux-VM's zonder UEFI (BIOS- Gen1)
grub2-install /dev/sdX grub2-mkconfig -o /boot/grub2/grub.cfg sed -i 's/hd2/hd0/g' /boot/grub2/grub.cfgRHEL/CentOS/Oracle 7.x/8.x/9.x Linux-VM's met UEFI (Gen2)
yum reinstall grub2-efi-x64 shim-x64 grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg sed -i 's/hd2/hd0/g' /boot/efi/EFI/redhat/grub.cfgAls op de VM CentOS wordt uitgevoerd, vervang
redhatdoorcentosin het absolute pad van het bestand grub.cfg/boot/efi/EFI/centos/grub.cfg.SLES 12/15 Gen1 en Gen2
grub2-install /dev/sdX grub2-mkconfig -o /boot/grub2/grub.cfg sed -i 's/hd2/hd0/g' /boot/grub2/grub.cfgUbuntu Gen1 en Gen2
grub-install /dev/sdX update-grub
Ga naar stap 3 in Problemen met GRUB-reddingsactie offline oplossen om de besturingssysteemschijf te wisselen.
Fout: onbekend bestandssysteem
In de volgende schermopname ziet u het foutbericht:
Deze fout kan worden gekoppeld aan een van de volgende problemen:
/bootbeschadiging van het bestandssysteem.Volg de stappen in Beschadiging van /boot-bestandssysteem oplossen om dit probleem op te lossen.
GRUB boot loader wijst naar een ongeldige schijf of partitie.
U kunt dit probleem oplossen door GRUB opnieuw te installeren en het GRUB-configuratiebestand handmatig opnieuw te genereren.
Problemen met partitietabel van besturingssysteemschijf die worden veroorzaakt door menselijke fouten.
Als u dergelijke problemen wilt oplossen, volgt u de stappen in Fout: Geen dergelijke partitie om de partitie opnieuw te maken als deze
/bootontbreekt of onjuist is gemaakt.
Beschadiging van /boot-bestandssysteem oplossen
Voer de volgende stappen uit om beschadiging van het bestandssysteem op te lossen /boot :
Controleer of er een herstel-VM is gemaakt. Als deze niet is gemaakt, voert u stap 1 uit in Problemen met GRUB-herstelmodus offline oplossen om de virtuele machine te maken.
Raadpleeg Troubleshoot file system corruption errors in Azure Linux om de corruptieproblemen in de bijbehorende
/bootpartitie op te lossen.Ga naar stap 3 in Problemen met GRUB-reddingsactie offline oplossen om de besturingssysteemschijf te wisselen.
Fout 15: Bestand niet gevonden
In de volgende schermopname ziet u het foutbericht:
Ga als volgt te werk om dit probleem op te lossen:
Controleer of er een herstel-VM is gemaakt. Als deze niet is gemaakt, voert u stap 1 uit in Problemen met GRUB-herstelmodus offline oplossen om de virtuele machine te maken. Koppel alle vereiste bestandssystemen, inclusief
/en/bootin de herstel-/reparatie-VM, en voer vervolgens de chroot-omgeving in.Controleer de inhoud van het
/bootbestandssysteem en bepaal wat er ontbreekt.Als het GRUB-configuratiebestand ontbreekt, installeert u GRUB opnieuw en genereert u het GRUB-configuratiebestand handmatig opnieuw.
Controleer of de bestandsmachtigingen in het
/bootbestandssysteem in orde zijn. U kunt de machtigingen vergelijken met behulp van een andere VIRTUELE machine waarop dezelfde Linux-versie wordt uitgevoerd.Als de volledige /bootpartitie of andere belangrijke inhoud ontbreekt en niet kan worden hersteld, raden we u aan de virtuele machine te herstellen vanuit een back-up. Zie Het herstellen van Azure VM-gegevens in Azure portal voor meer informatie.
Nadat het probleem is opgelost, gaat u naar stap 3 in Problemen met GRUB-rescue offline oplossen om de OS-schijf te wisselen.
Fout: bestand '/boot/grub2/i386-pc/normal.mod' niet gevonden
In de volgende schermopname ziet u het foutbericht:
Controleer of er een herstel-VM is gemaakt. Als het niet is aangemaakt, volgt u stap 1 in GRUB-reddingsprobleem offline oplossen om er een aan te maken. Koppel alle vereiste bestandssystemen, inclusief
/en/bootin de herstel-/reparatie-VM, en voer vervolgens de chroot-omgeving in.Als u het
/bootbestandssysteem niet kunt koppelen vanwege een beschadiging, herstelt u het /boot-bestandssysteem.Wanneer u zich in chroot bevindt, controleert u de inhoud in de
/boot/grub2/i386-pcmap. Als de inhoud ontbreekt, kopieert u de inhoud van/usr/lib/grub/i386-pc. Gebruik hiervoor de volgende opdrachten:ls -l /boot/grub2/i386-pc cp -rp /usr/lib/grub/i386-pc /boot/grub2Als de inhoud van de
/bootpartitie leeg is, gebruikt u de volgende opdrachten om deze opnieuw te maken:Opmerking
De volgende stappen zijn van toepassing op RHEL/CentOS/Oracle 7.x/8.x Linux-VM's zonder UEFI (BIOS- Gen1).
Installeer de grub opnieuw onder het chroot-proces. Vervang
/dev/sd[X]dienovereenkomstig door de bijbehorende kopie van de besturingssysteemschijf die is gekoppeld aan de herstel-/reddings-VM:grub2-install /dev/sd[X]Zorg ervoor dat er voor
/etc/resolv.confeen geldige DNS-vermelding is om de naam van de opslagplaats te kunnen resolveren.cat /etc/resolv.confInstalleer de kernel opnieuw:
yum reinstall $(rpm -qa | grep -i kernel)Maak het
grub.cfgbestand:grub2-mkconfig -o /boot/grub2/grub.cfg sed -i 's/hd2/hd0/g' /boot/grub2/grub.cfg
Ga verder met stap 3 in Problemen met GRUB-reddingsactie offline oplossen om de besturingssysteemschijf te wisselen.
Fout: geen dergelijke partitie
In de volgende schermopname ziet u het foutbericht:
Deze fout treedt op op een RHEL-VM (Red Hat, Oracle Linux, CentOS) op in een van de volgende scenario's:
- De
/bootpartitie wordt per ongeluk verwijderd. - De
/bootpartitie wordt opnieuw gemaakt met behulp van de verkeerde begin- en eindsectoren.
Oplossing: Maak /bootpartitie opnieuw
Als de partitie ontbreekt, maakt u deze /boot opnieuw door deze stappen uit te voeren:
Controleer of er een herstel-VM is gemaakt. Als deze niet is gemaakt, voert u stap 1 uit in Problemen met GRUB-herstelmodus offline oplossen om de virtuele machine te maken.
Bepaal of de partitietabel is gemaakt als het type dos of GPT met behulp van de volgende opdracht:
sudo fdisk -l /dev/sdXDOS-partitietabel
GPT-partitietabel
Als de partitietabel het type dos heeft, maak dan de /boot-partitie opnieuw aan in dos-systemen. Als de partitietabel GPT heeft als partitietabeltype, maakt u de /boot-partitie opnieuw in GPT-systemen.
Zorg ervoor dat het GRUB-opstartlaadprogramma is geïnstalleerd met behulp van de juiste schijf. Volg de stappen in om GRUB opnieuw te installeren en het GRUB-configuratiebestand handmatig opnieuw te genereren om het te installeren en te configureren.
Ga verder met stap 3 in Problemen met GRUB-reddingsactie offline oplossen om de besturingssysteemschijf te wisselen.
Maak /bootpartitie opnieuw in dos-systemen
Maak de
/bootpartitie opnieuw vanaf een herstel-/herstel-VM met behulp van de volgende opdracht:sudo fdisk /dev/sdXGebruik de standaardwaarden in de eerste en laatste sectoren en het partitietype (83). Zorg ervoor dat de
/bootpartitietabel is gemarkeerd als opstartbaar met behulp van deaoptie in hetfdiskhulpprogramma, zoals wordt weergegeven in de volgende uitvoer:sudo fdisk /dev/sdc The device presents a logical sector size that is smaller than the physical sector size. Aligning to a physical sector (or optimal I/O) size boundary is recommended, or performance may be impacted. Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (1,3,4, default 1): 1 First sector (2048-134217727, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-2099199, default 2099199): Using default value 2099199 Partition 1 of type Linux and of size 1 GiB is set Command (m for help): t Partition number (1,2, default 2): 1 Hex code (type L to list all codes): 83 Changed type of partition 'Linux' to 'Linux' Command (m for help): a Partition number (1,2, default 2): 1 Command (m for help): p Disk /dev/sdc: 68.7 GB, 68719476736 bytes, 134217728 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk label type: dos Disk identifier: 0x000b7179 Device Boot Start End Blocks Id System /dev/sdc1 * 2048 2099199 1048576 83 Linux /dev/sdc2 2099200 134217727 66059264 8e Linux LVM Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table.Nadat u de ontbrekende
/bootpartitie opnieuw hebt gemaakt, controleert u of het/bootbestandssysteem is gedetecteerd. U moet een vermelding kunnen zien voor/dev/sdX1(de ontbrekende /opstartpartitie).sudo blkid /dev/sdX1sudo blkid /dev/sdc1 /dev/sdc1: UUID="<UUID>" TYPE="ext4"Als het
/bootbestandssysteem niet zichtbaar is nadatblkidu de partitie opnieuw hebt gemaakt, betekent dit dat de/bootgegevens niet meer bestaan. U moet het/bootbestandssysteem opnieuw maken (met dezelfde UUID- en bestandssysteemindeling die zich in de/etc/fstab/bootvermelding bevindt) en vervolgens de inhoud van een back-up herstellen.
Maak /bootpartitie opnieuw in GPT-systemen
Maak de
/bootpartitie opnieuw vanaf een herstel-/herstel-VM met behulp van de volgende opdracht:sudo gdisk /dev/sdXGebruik de standaardwaarden in de eerste en laatste sectoren en het partitietype (8300), zoals wordt weergegeven in de volgende uitvoer:
sudo gdisk /dev/sdc GPT fdisk (gdisk) version 1.0.3 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help): n Partition number (1-128, default 1): 1 First sector (34-134217694, default = 1026048) or {+-}size{KMGTP}: Last sector (1026048-2050047, default = 2050047) or {+-}size{KMGTP}: Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem' Command (? for help): p Disk /dev/sdc: 134217728 sectors, 64.0 GiB Model: Virtual Disk Sector size (logical/physical): 512/4096 bytes Disk identifier (GUID): 6D915856-445A-4513-97E4-C55F2E1AD6C0 Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 134217694 Partitions will be aligned on 2048-sector boundaries Total free space is 6076 sectors (3.0 MiB) Number Start (sector) End (sector) Size Code Name 1 1026048 2050047 500.0 MiB 8300 Linux filesystem 2 2050048 134215679 63.0 GiB 8E00 14 2048 10239 4.0 MiB EF02 15 10240 1024000 495.0 MiB EF00 EFI System Partition Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/sdc. Warning: The kernel is still using the old partition table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) The operation has completed successfully.Controleer of het
/bootbestandssysteem door het systeem wordt gedetecteerd met behulp van de volgende opdracht:sudo blkid /dev/sdX1U moet een vermelding voor
/dev/sdX1(de ontbrekende/bootpartitie) kunnen zien.sudo blkid /dev/sdc1 /dev/sdc1: UUID="<UUID>" BLOCK_SIZE="4096" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="<PARTUUID>"Als het
/bootbestandssysteem niet zichtbaar is nadat u de partitie opnieuw hebt gemaakt, betekent dit dat de/bootgegevens niet meer bestaan. U moet het/bootbestandssysteem opnieuw maken (met behulp van dezelfde UUID die zich in de/etc/fstab/bootvermelding bevindt) en vervolgens de inhoud van een back-up herstellen.
Fout: symbool 'grub_efi_get_secure_boot' is niet gevonden
In de volgende schermopname ziet u het foutbericht:
Linux-kernelversie 4.12.14 (die wordt gebruikt in SLES 12 SP5) biedt geen ondersteuning voor de optie Beveiligd opstarten . Als beveiligd opstarten is ingeschakeld tijdens de implementatie van de VM (dat wil gezegd, het veld Beveiligingstype is ingesteld op virtuele machines met vertrouwde start), genereert de virtuele machine de fout beveiligd opstarten via de console wanneer u probeert te beginnen met het gebruik van deze SUSE-kernelversie op een Gen2-VM-installatiekopie.
Oplossing
Voer de volgende stappen uit om de opstartfout op te lossen:
Controleer of er een herstel-VM is gemaakt. Als deze niet is gemaakt, voert u stap 1 uit in Problemen met GRUB-herstelmodus offline oplossen om de virtuele machine te maken. Koppel alle vereiste bestandssystemen, inclusief
/en/boot, en voer vervolgens de chroot-omgeving in.Voer de volgende YaST-opdracht uit in de chroot-omgeving:
yast2 bootloaderVerwijder het vinkje bij de optie Secure Boot Support en selecteer vervolgens F10 om de wijziging op te slaan.
Volg stap 3 in Problemen met GRUB-reddingsactie offline oplossen om de besturingssysteemschijf te wisselen.
Andere GRUB-herstelfouten
In de volgende schermopname ziet u het foutbericht:
Dit type fout wordt geactiveerd in een van de volgende scenario's:
- Het GRUB-configuratiebestand ontbreekt.
- De verkeerde GRUB-configuratie wordt gebruikt.
- De
/bootpartitie of de inhoud ervan ontbreekt.
U kunt deze fout als volgt oplossen:
Controleer of er een herstel-VM is gemaakt. Als deze niet is gemaakt, voert u stap 1 uit in Problemen met GRUB-herstelmodus offline oplossen om de virtuele machine te maken. Koppel alle vereiste bestandssystemen, inclusief
/en/boot, en voer vervolgens de chroot-omgeving in.Zorg ervoor dat het
/etc/default/grubconfiguratiebestand is geconfigureerd. De goedgekeurde Azure Linux-afbeeldingen beschikken al over de vereiste configuraties. Zie de volgende artikelen voor meer informatie:Installeer GRUB opnieuw en genereer het GRUB-configuratiebestand handmatig.
Opmerking
Als het ontbrekende bestand is
/boot/grub/menu.lst, is deze fout voor oudere versies van het besturingssysteem (RHEL 6.x, Centos 6.x en Ubuntu 14.04). De opdrachten verschillen omdat GRUB versie 1 in plaats daarvan in deze systemen wordt gebruikt. GRUB versie 1 wordt niet behandeld in dit artikel.Als de volledige
/bootpartitie ontbreekt, volgt u de stappen in Fout: geen dergelijke partitie.Nadat het probleem is opgelost, gaat u naar stap 3 in Problemen met GRUB-rescue offline oplossen om de OS-schijf te wisselen.
Volgende stappen
Als de specifieke opstartfout geen GRUB-probleem is, raadpleegt u Troubleshoot Azure Linux Virtual Machines opstartfouten voor verdere probleemoplossingsopties.
Vrijwaring voor informatie van derden
De producten van derden die in dit artikel worden besproken, worden vervaardigd door bedrijven die onafhankelijk zijn van Microsoft. Microsoft maakt geen garantie, impliciet of anderszins, over de prestaties of betrouwbaarheid van deze producten.
Disclaimer voor derde partij contact
Microsoft biedt contactgegevens van derden om u te helpen aanvullende informatie over dit onderwerp te vinden. Deze contactinformatie kan zonder voorafgaande kennisgeving worden gewijzigd. Microsoft garandeert niet de nauwkeurigheid van contactgegevens van derden.