Den virtuella Linux-datorn startar till GRUB Rescue
Gäller för: ✔️ Virtuella Linux-datorer
Kommentar
CentOS som refereras i den här artikeln är en Linux-distribution och kommer att nå End Of Life (EOL). Överväg att använda och planera i enlighet med detta. Mer information finns i CentOS End Of Life-vägledning.
Den här artikeln beskriver flera villkor som orsakar GRUB-räddningsproblem och innehåller felsökningsvägledning.
Under startprocessen försöker startinläsaren hitta Linux-kerneln och lämna över startkontrollen. Om den här överlämningen inte kan utföras anger den virtuella datorn (VM) en GRUB-återställningskonsol. GRUB-kommandotolken för återställningskonsolen visas inte i Azure-seriekonsolloggen, men den kan visas i skärmbilden av Azure-startdiagnostik.
Identifiera grub-räddningsproblem
Visa en skärmbild av startdiagnostik på sidan Startdiagnostik för den virtuella datorn i Azure Portal. Den här skärmbilden hjälper dig att diagnostisera GRUB-räddningsproblemet och avgöra om ett startfel orsakar problemet.
Följande text är ett exempel på ett GRUB-räddningsproblem:
error: file '/boot/grub2/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>
Felsöka grub-räddningsproblem offline
För att felsöka ett GRUB-räddningsproblem krävs en virtuell dator för räddning/reparation. Använd vm-reparationskommandon för att skapa en reparations-VM som har en kopia av den berörda virtuella datorns OS-disk ansluten. Montera kopian av OS-filsystemen på den virtuella reparationsdatorn med hjälp av chroot.
Kommentar
Du kan också skapa en virtuell räddningsdator manuellt med hjälp av Azure Portal. Mer information finns i Felsöka en virtuell Linux-dator genom att ansluta OS-disken till en återställnings-VM med hjälp av Azure Portal.
Identifiera grub-räddningsproblem. När du stöter på något av följande GRUB-räddningsproblem går du till motsvarande avsnitt för att lösa det:
När grub-räddningsproblemet har lösts utför du följande åtgärder:
Demontera kopian av filsystemen från den virtuella datorn för räddning/reparation.
az vm repair restore
Kör kommandot för att växla den reparerade OS-disken med den virtuella datorns ursprungliga OS-disk. Mer information finns i Steg 5 i Reparera en virtuell Linux-dator med hjälp av reparationskommandona för Azure Virtual Machine.Kontrollera om den virtuella datorn kan starta genom att ta en titt på Azure-seriekonsolen eller genom att försöka ansluta till den virtuella datorn.
Om hela /boot-partitionen eller annat viktigt innehåll saknas och inte kan återställas rekommenderar vi att du återställer den virtuella datorn från en säkerhetskopia. Mer information finns i Så här återställer du data för virtuella Azure-datorer i Azure Portal.
I följande avsnitt finns detaljerade fel, möjliga orsaker och lösningar.
Kommentar
I kommandona som nämns i följande avsnitt ersätter du /dev/sdX
med motsvarande operativsystemdiskenhet (OS).
Fel: okänt filsystem
Följande skärmbild visar felmeddelandet:
Det här felet kan vara kopplat till något av följande problem:
/boot file system corruption.
Lös problemet genom att följa stegen i Åtgärda /fel i filsystemet för start.
GRUB-startinläsaren pekar på en ogiltig disk eller partition.
Lös problemet genom att installera om GRUB och återskapa GRUB-konfigurationsfilen.
Problem med os-diskpartitionstabellen som orsakas av mänskliga fel.
Lös sådana problem genom att följa stegen i Fel: Ingen sådan partition med rekommendationer för att återskapa /boot-partitionen om den saknas eller har skapats felaktigt.
Åtgärda skadade /boot-filsystem
Kontrollera om en virtuell dator för räddning/reparation har skapats. Om den inte har skapats följer du steg 1 i Felsöka grub-räddningsproblem offline för att skapa den virtuella datorn.
Se Felsöka fel med skadade filsystem i Azure Linux för att lösa problemen med skadade filer i motsvarande /boot-partition.
Gå till steg 3 i Felsöka GRUB-räddningsproblem offline för att växla OS-disken.
Installera om GRUB och återskapa GRUB-konfigurationsfilen
Kontrollera om en virtuell dator för räddning/reparation har skapats. Om den inte har skapats följer du steg 1 i Felsöka grub-räddningsproblem offline för att skapa den virtuella datorn. Montera alla nödvändiga filsystem, inklusive/och /boot i den virtuella datorn för räddning/reparation, och ange sedan chroot-miljön .
Installera om GRUB och återskapa motsvarande GRUB-konfigurationsfil med något av följande kommandon:
RHEL/CentOS/Oracle 7.x/8.x/9.x Virtuella Linux-datorer utan UEFI (BIOS-baserad – 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/9.x Virtuella Linux-datorer med 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
Om den virtuella datorn kör CentOS ersätter du
redhat
medcentos
i grub.cfg-filens absoluta sökväg /boot/efi/EFI/centos/grub.cfg.SLES 12/15 Gen1 och Gen2
grub2-install /dev/sdX grub2-mkconfig -o /boot/grub2/grub.cfg sed -i 's/hd2/hd0/g' /boot/grub2/grub.cfg
Ubuntu 20.04/22.04/24.04
grub-install /dev/sdX update-grub
Gå till steg 3 i Felsöka GRUB-räddningsproblem offline för att växla OS-disken.
Fel 15: Filen hittades inte
Följande skärmbild visar felmeddelandet:
Följ dessa anvisningar för att lösa problemet:
Kontrollera om en virtuell dator för räddning/reparation har skapats. Om den inte har skapats följer du steg 1 i Felsöka grub-räddningsproblem offline för att skapa den virtuella datorn. Montera alla nödvändiga filsystem, inklusive/och /boot i den virtuella datorn för räddning/reparation, och ange sedan chroot-miljön .
Granska innehållet i /boot-filsystemet och ta reda på vad som saknas.
Om GRUB-konfigurationsfilen saknas installerar du om GRUB och återskapar GRUB-konfigurationsfilen.
Kontrollera att filbehörigheterna i filsystemet /boot är OK. Du kan jämföra behörigheterna med hjälp av en annan virtuell dator som kör samma Linux-version.
Om hela /boot-partitionen eller annat viktigt innehåll saknas och inte kan återställas rekommenderar vi att du återställer den virtuella datorn från en säkerhetskopia. Mer information finns i Så här återställer du data för virtuella Azure-datorer i Azure Portal.
När problemet har lösts går du till steg 3 i Felsöka GRUB-räddningsproblem offline för att växla os-disken.
Fel: filen '/boot/grub2/i386-pc/normal.mod' hittades inte
Följande skärmbild visar felmeddelandet:
Kontrollera om en virtuell dator för räddning/reparation har skapats. Om den inte har skapats följer du steg 1 i Felsöka grub-räddningsproblem offline för att skapa ett. Montera alla nödvändiga filsystem, inklusive/och /boot i den virtuella datorn för räddning/reparation, och ange sedan chroot-miljön .
Om du inte kan montera filsystemet /boot på grund av ett fel vid skada kan du åtgärda /boot-filsystemets skada.
När du befinner dig i chroot kontrollerar du innehållet i katalogen /boot/grub2/i386-pc . Om innehållet saknas kopierar du innehållet från /usr/lib/grub/i386-pc. Gör detta genom att använda följande kommandon:
ls -l /boot/grub2/i386-pc cp -rp /usr/lib/grub/i386-pc /boot/grub2
Om innehållet i partitionen
/boot
är tomt använder du följande kommandon för att återskapa det:Kommentar
Följande steg gäller för virtuella DATORER med RHEL/CentOS/Oracle 7.x/8.x Linux utan UEFI (BIOS-baserad – Gen1).
Installera om grub under chroot-processen. Ersätt
/dev/sd[X]
därefter med motsvarande kopia av os-disken som är ansluten till den virtuella reparations-/räddningsdatorn:grub2-install /dev/sd[X]
Kontrollera att
/etc/resolv.conf
det finns en giltig DNS-post för att matcha namnet på lagringsplatsen:cat /etc/resolv.conf
Installera om kerneln:
yum reinstall $(rpm -qa | grep -i kernel)
Skapa grub.cfg-filen:
grub2-mkconfig -o /boot/grub2/grub.cfg sed -i 's/hd2/hd0/g' /boot/grub2/grub.cfg
Fortsätt med steg 3 i Felsöka GRUB-räddningsproblem offline för att växla OS-disken.
Fel: ingen sådan partition
Följande skärmbild visar felmeddelandet:
Det här felet uppstår på en RHEL-baserad virtuell dator (Red Hat, Oracle Linux, CentOS) i något av följande scenarier:
- Partitionen /boot tas bort av misstag.
- Partitionen /boot återskapas med hjälp av fel start- och slutsektorer.
Lösning: Återskapa /startpartition
Om partitionen /boot saknas skapar du den igen genom att följa dessa steg:
Kontrollera om en virtuell dator för räddning/reparation har skapats. Om den inte har skapats följer du steg 1 i Felsöka grub-räddningsproblem offline för att skapa den virtuella datorn.
Identifiera om partitionstabellen skapas som dos - eller GPT-typ med hjälp av följande kommando:
sudo fdisk -l /dev/sdX
Dos-partitionstabell
GPT-partitionstabell
Om partitionstabellen har dos som partitionstabelltyp återskapar du /boot partition i dos-system. Om partitionstabellen har GPT som partitionstabelltyp återskapar du /boot partition i GPT-system.
Kontrollera att GRUB-startinläsaren är installerad med rätt disk. Du kan följa stegen i Installera om GRUB och återskapa GRUB-konfigurationsfilen för att få den installerad och konfigurerad.
Fortsätt med steg 3 i Felsöka GRUB-räddningsproblem offline för att växla OS-disken.
Återskapa /startpartition i dos-system
Återskapa partitionen /boot med hjälp av följande kommando:
sudo fdisk /dev/sdX
Använd standardvärdena i sektorerna Första och Sista och partitionstyp (83). Kontrollera att partitionstabellen /boot är markerad som startbar med hjälp
a
av alternativet ifdisk
verktyget, enligt följande utdata: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.
När du har återskapat den saknade /boot-partitionen kontrollerar du om filsystemet /boot har identifierats. Du bör kunna se en post för
/dev/sdX1
(den saknade /boot-partitionen).sudo blkid /dev/sdX1
sudo blkid /dev/sdc1 /dev/sdc1: UUID="<UUID>" TYPE="ext4"
Om filsystemet /boot inte visas i
blkid
när du har återskapat partitionen innebär det att /boot-data inte längre finns. Du måste återskapa filsystemet /boot (med samma UUID- och filsystemformat som finns i /etc/fstab /boot-posten) och sedan återställa innehållet från en säkerhetskopia.
Återskapa /startpartition i GPT-system
Återskapa partitionen /boot med hjälp av följande kommando:
sudo gdisk /dev/sdX
Använd standardvärdena i sektorerna Första och Sista och partitionstyp (8300), enligt följande utdata:
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.
Kontrollera om /boot-filsystemet identifieras av systemet med hjälp av följande kommando:
sudo blkid /dev/sdX1
Du bör kunna se en post för
/dev/sdX1
(den saknade /boot-partitionen).sudo blkid /dev/sdc1 /dev/sdc1: UUID="<UUID>" BLOCK_SIZE="4096" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="<PARTUUID>"
Om filsystemet /boot inte visas när du har skapat partitionen igen innebär det att /boot-data inte längre finns. Du måste återskapa filsystemet /boot (med samma UUID som finns i /etc/fstab /boot-posten) och sedan återställa innehållet från en säkerhetskopia.
Fel: symbolen "grub_efi_get_secure_boot" hittades inte
Följande skärmbild visar felmeddelandet:
Linux-kernelversionen 4.12.14 (som används i SLES 12 SP5) stöder inte alternativet Säker start . Om säker start är aktiverad under distributionen av den virtuella datorn (dvs . fältet Säkerhetstyp är inställt på Betrodda virtuella startdatorer) genererar den virtuella datorn det säkra startfelet via konsolen när du försöker starta med den här SUSE-kernelversionen på en gen2 VM-avbildning.
Lösning
Lös startfelet genom att följa dessa steg:
Kontrollera om en virtuell dator för räddning/reparation har skapats. Om den inte har skapats följer du steg 1 i Felsöka grub-räddningsproblem offline för att skapa den virtuella datorn. Montera alla nödvändiga filsystem, inklusive/och /boot, och ange sedan chroot-miljön .
Kör följande YaST-kommando i chroot-miljön:
yast2 bootloader
Ta bort "x" från alternativet Aktivera stöd för säker start och välj sedan F10 för att spara ändringen.
Följ steg 3 i Felsöka GRUB-räddningsproblem offline för att växla OS-disken.
Andra GRUB-räddningsfel
Följande skärmbild visar felmeddelandet:
Den här typen av fel utlöses i något av följande scenarier:
- GRUB-konfigurationsfilen saknas.
- Fel GRUB-konfiguration används.
- /boot-partitionen eller dess innehåll saknas.
Du åtgärdar felet genom att följa dessa steg:
Kontrollera om en virtuell dator för räddning/reparation har skapats. Om den inte har skapats följer du steg 1 i Felsöka grub-räddningsproblem offline för att skapa den virtuella datorn. Montera alla nödvändiga filsystem, inklusive/och /boot, och ange sedan chroot-miljön .
Kontrollera att konfigurationsfilen /etc/default/grub har konfigurerats. De godkända Azure Linux-avbildningarna har redan de konfigurationer som krävs. Mer information finns i följande artiklar:
Installera om GRUB och återskapa GRUB-konfigurationsfilen.
Kommentar
Om den saknade filen är /boot/grub/menu.lst gäller det här felet för äldre OS-versioner (RHEL 6.x, Centos 6.x och Ubuntu 14.04). Kommandona skiljer sig eftersom GRUB version 1 används i dessa system i stället. GRUB version 1 beskrivs inte i den här artikeln.
Om hela /boot-partitionen saknas följer du stegen i Fel: ingen sådan partition.
När problemet har lösts går du till steg 3 i Felsöka GRUB-räddningsproblem offline för att växla os-disken.
Nästa steg
Om det specifika startfelet inte är ett GRUB-återställningsproblem kan du läsa Felsöka startfel för virtuella Azure Linux-datorer för ytterligare felsökningsalternativ.
Ansvarsfriskrivning för information från tredje part
De produkter från andra tillverkare som diskuteras i denna artikel tillverkas oberoende av Microsoft. Produkternas funktion eller tillförlitlighet kan därför inte garanteras.
Ansvarsfriskrivning för tredje part
Microsoft tillhandahåller kontaktinformation från tredje part som hjälper dig att hitta ytterligare information om det här ämnet. Denna kontaktinformation kan ändras utan föregående meddelande. Microsoft garanterar inte att kontaktinformation från tredje part är korrekt.
Kontakta oss för att få hjälp
Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.