Virtuele Linux-machine start op met Grub Rescue als gevolg
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.
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, voert de virtuele machine (VM) een GRUB rescue-console in. De prompt van de GRUB rescue-console wordt niet weergegeven in het seriële consolelogboek van Azure, maar kan worden weergegeven in de schermopname van diagnostische gegevens over Azure-opstartgegevens.
Probleem met GRUB-reddingsactie identificeren
Bekijk een schermopname van diagnostische gegevens over opstarten op de vm-opstartdiagnose van 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. 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.
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-/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 beginnen met het bekijken van de seriële Console van Azure of door verbinding te maken met de virtuele machine.
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 Azure VM-gegevens herstellen in Azure Portal voor meer informatie.
Zie de volgende secties voor gedetailleerde fouten, mogelijke oorzaken en oplossingen.
Notitie
Vervang in de opdrachten die worden genoemd in de volgende secties door /dev/sdX
het bijbehorende besturingssysteemschijfapparaat.
Fout: onbekend bestandssysteem
In de volgende schermopname ziet u het foutbericht:
Deze fout kan worden gekoppeld aan een van de volgende problemen:
/boot bestandssysteem beschadiging.
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 opnieuw te genereren.
Problemen met partitietabel van besturingssysteemschijf die worden veroorzaakt door menselijke fouten.
Volg de stappen in Fout om dergelijke problemen op te lossen: Geen dergelijke partitie met aanbevelingen om de /boot-partitie opnieuw te maken als deze ontbreekt of onjuist is gemaakt.
Beschadiging van /boot-bestandssysteem oplossen
Controleer of er een herstel-VM is gemaakt. Als deze niet is gemaakt, volgt u stap 1 in Problemen met GRUB-reddingsactie offline oplossen om de VIRTUELE machine te maken.
Raadpleeg Troubleshoot file system corruption errors in Azure Linux to resolve the corruption issues in the corresponding /boot partition. (Problemen met beschadigde bestanden in het bestandssysteem in Azure Linux oplossen) om de beschadigingsproblemen in de bijbehorende /boot-partitie op te lossen.
Ga naar stap 3 in Problemen met GRUB-reddingsactie offline oplossen om de besturingssysteemschijf te wisselen.
Grub opnieuw installeren en GRUB-configuratiebestand opnieuw genereren
Controleer of er een herstel-VM is gemaakt. Als deze niet is gemaakt, volgt u stap 1 in Problemen met GRUB-reddingsactie offline oplossen om de VIRTUELE machine te maken. Koppel alle vereiste bestandssystemen, inclusief/en/boot in de herstel-/herstel-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 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.cfg
RHEL/CentOS/Oracle 7.x/8.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.cfg
Als op de VM CentOS wordt uitgevoerd, vervangt
redhat
u ditcentos
door in het bestand grub.cfg absolute pad /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.cfg
Ubuntu 18.04/20.04
grub-install /dev/sdX update-grub
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:
Volg deze stappen om dit probleem op te lossen:
Controleer of er een herstel-VM is gemaakt. Als deze niet is gemaakt, volgt u stap 1 in Problemen met GRUB-reddingsactie offline oplossen om de VIRTUELE machine te maken. Koppel alle vereiste bestandssystemen, inclusief/en /boot in de herstel-/herstel-VM, en voer vervolgens de chroot-omgeving in.
Controleer de inhoud van het /boot-bestandssysteem en bepaal wat er ontbreekt.
Als het GRUB-configuratiebestand ontbreekt, installeert u GRUB opnieuw en genereert u het GRUB-configuratiebestand opnieuw.
Controleer of de bestandsmachtigingen in het /boot-bestandssysteem 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 Azure VM-gegevens herstellen in Azure Portal voor meer informatie.
Nadat het probleem is opgelost, gaat u offline naar stap 3 in Problemen met GRUB-redding oplossen om de besturingssysteemschijf 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 gemaakt, volgt u stap 1 in Problemen met GRUB-reddingsproblemen offline oplossen om er een te maken. Koppel alle vereiste bestandssystemen, inclusief/en/boot in de herstel-/herstel-VM, en voer vervolgens de chroot-omgeving in.
Als u het /boot-bestandssysteem niet kunt koppelen vanwege een beschadigingsfout, herstelt u beschadiging /boot-bestandssysteem.
Wanneer u zich in chroot bevindt, controleert u de inhoud in de map /boot/grub2/i386-pc . 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/grub2
Als de inhoud van de
/boot
partitie leeg is, gebruikt u de volgende opdrachten om deze opnieuw te maken:Notitie
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
/etc/resolv.conf
er een geldige DNS-vermelding is om de naam van de opslagplaats om te zetten:cat /etc/resolv.conf
Installeer de kernel opnieuw:
yum reinstall $(rpm -qa | grep -i kernel)
Maak het grub.cfg-bestand :
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 /boot-partitie wordt per ongeluk verwijderd.
- De /boot-partitie wordt opnieuw gemaakt met behulp van de verkeerde begin- en eindsectoren.
Oplossing: Maak /bootpartitie opnieuw
Als de /boot-partitie ontbreekt, maakt u deze opnieuw door de volgende stappen uit te voeren:
Controleer of er een herstel-VM is gemaakt. Als deze niet is gemaakt, volgt u stap 1 in Problemen met GRUB-reddingsactie 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/sdX
Partitietabel Dos
GPT-partitietabel
Als de partitietabel doet als het partitietabeltype, maakt u de /boot-partitie opnieuw 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. U kunt de stappen in GRUB opnieuw installeren en GRUB-configuratiebestand opnieuw 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 /boot-partitie opnieuw met behulp van de volgende opdracht:
sudo fdisk /dev/sdX
Gebruik de standaardwaarden in de eerste en laatste sectoren en het partitietype (83). Zorg ervoor dat de partitietabel /boot is gemarkeerd als opstartbaar met behulp van de
a
optie in hetfdisk
hulpprogramma, 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 /boot-partitie opnieuw hebt gemaakt, controleert u of het /boot-bestandssysteem is gedetecteerd. U moet een vermelding kunnen zien voor
/dev/sdX1
(de ontbrekende /opstartpartitie).sudo blkid /dev/sdX1
sudo blkid /dev/sdc1 /dev/sdc1: UUID="<UUID>" TYPE="ext4"
Als het /boot-bestandssysteem niet zichtbaar is nadat
blkid
u de partitie opnieuw hebt gemaakt, betekent dit dat de /boot-gegevens niet meer bestaan. U moet het /boot-bestandssysteem opnieuw maken (met behulp van dezelfde UUID- en bestandssysteemindeling die zich in de vermelding /etc/fstab /boot) bevindt en vervolgens de inhoud van een back-up herstellen.
Maak /bootpartitie opnieuw in GPT-systemen
Maak de /boot-partitie opnieuw met behulp van de volgende opdracht:
sudo gdisk /dev/sdX
Gebruik 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 /boot-bestandssysteem door het systeem wordt gedetecteerd met behulp van de volgende opdracht:
sudo blkid /dev/sdX1
U moet een vermelding kunnen zien voor
/dev/sdX1
(de ontbrekende /opstartpartitie).sudo blkid /dev/sdc1 /dev/sdc1: UUID="<UUID>" BLOCK_SIZE="4096" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="<PARTUUID>"
Als het /boot-bestandssysteem niet zichtbaar is nadat u de partitie opnieuw hebt gemaakt, betekent dit dat de /boot-gegevens niet meer bestaan. U moet het /boot-bestandssysteem opnieuw maken (met behulp van dezelfde UUID die zich in de vermelding /etc/fstab /boot) 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, volgt u stap 1 in Problemen met GRUB-reddingsactie 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 bootloader
Schakel de x uit de optie Secure Boot Support inschakelen 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-reddingsfouten
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 /boot-partitie of de inhoud ervan ontbreekt.
Om deze fout op te lossen, volgt u deze stappen:
Controleer of er een herstel-VM is gemaakt. Als deze niet is gemaakt, volgt u stap 1 in Problemen met GRUB-reddingsactie 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 configuratiebestand /etc/default/grub is geconfigureerd. De goedgekeurde Azure Linux-installatiekopieën hebben al de vereiste configuraties. Raadpleeg voor meer informatie de volgende artikelen:
Installeer GRUB opnieuw en genereer het GRUB-configuratiebestand opnieuw.
Notitie
Als het ontbrekende bestand /boot/grub/menu.lst is, 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 /boot-partitie ontbreekt, volgt u de stappen in Fout: geen dergelijke partitie.
Nadat het probleem is opgelost, gaat u offline naar stap 3 in Problemen met GRUB-redding oplossen om de besturingssysteemschijf te wisselen.
Volgende stappen
Als de specifieke opstartfout geen GRUB-reddingsprobleem is, raadpleegt u Opstartfouten in Virtuele Linux-machines in Azure oplossen voor verdere probleemoplossingsopties.
Disclaimerinformatie van derden
De producten van derden die in dit artikel worden vermeld, worden vervaardigd door bedrijven die onafhankelijk zijn van Microsoft. Microsoft verleent dan ook geen enkele garantie, impliciet noch anderszins, omtrent de prestaties of de betrouwbaarheid van deze producten.
Vrijwaring van contactpersonen van derden
Microsoft biedt contactgegevens van derden om u te helpen aanvullende informatie over dit onderwerp te vinden. Deze contactgegevens kunnen zonder kennisgeving worden gewijzigd. Microsoft garandeert niet de nauwkeurigheid van contactgegevens van derden.
Contact met ons opnemen voor ondersteuning
Als u vragen hebt of hulp nodig hebt, maakt u een ondersteuningsaanvraag of stelt u ondersteuning voor de Azure-community. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.