Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: ✔️ Virtuella Linux-datorer
Obs!
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.
Obs!
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.
Obs!
I kommandona som nämns i följande avsnitt ersätter du /dev/sdX
med motsvarande operativsystemdiskenhet (OS).
Installera om GRUB och återskapa GRUB-konfigurationsfilen med hjälp av automatisk reparation av Azure Linux
Azure Linux-skript för automatisk reparation (ALAR) är en del av reparationstillägget för virtuella datorer som beskrivs i Använda Azure Linux Auto Repair (ALAR) för att åtgärda en virtuell Linux-dator. ALAR omfattar automatisering av flera reparationsscenarier, inklusive GRUB-räddningsproblem.
ALAR-skripten använder reparationstillägget repair-button
för att åtgärda GRUB-problem genom att --button-command grubfix
ange för virtuella datorer i generation 1 eller --button-command efifix
för virtuella datorer i generation 2. Den här parametern utlöser den automatiserade återställningen. Implementera följande kommandon för att automatisera korrigeringen av vanliga GRUB-fel genom att installera om GRUB och återskapa motsvarande konfigurationsfil:
Virtuella Linux-datorer utan UEFI (BIOS-baserad – Gen1):
az extension add -n vm-repair az extension update -n vm-repair az vm repair repair-button --button-command 'grubfix' --verbose $RGNAME --name $VMNAME
Virtuella Linux-datorer med 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
Viktigt!
Ersätt resursgruppens namn $RGNAME
och VM-namn $VMNAME
i enlighet med detta.
Skriptet för den virtuella reparationsdatorn, tillsammans med ALAR-skriptet, skapar tillfälligt en resursgrupp, en virtuell reparationsdator och en kopia av den berörda virtuella datorns OS-disk. Den installerar om GRUB, återskapar motsvarande GRUB-konfigurationsfil och växlar sedan den trasiga virtuella datorns OS-disk med den kopierade fasta disken. Slutligen tar skriptet repair-button
automatiskt bort resursgruppen som innehåller den temporära reparationsdatorn.
Installera om GRUB och återskapa GRUB-konfigurationsfilen manuellt
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-filensabsoluta 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 Gen1 och Gen2
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: okänt filsystem
Följande skärmbild visar felmeddelandet:
Det här felet kan vara kopplat till något av följande problem:
/boot
filsystemet skadas.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 manuellt.
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 för att återskapa partitionen om den
/boot
saknas eller har skapats felaktigt.
Åtgärda skadade /boot-filsystem
Följ dessa steg för att åtgärda /boot
fel i filsystemet:
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.
Fel 15: Filen hittades inte
Följande skärmbild visar felmeddelandet:
Lös problemet så här:
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 manuellt.
Kontrollera att filbehörigheterna i
/boot
filsystemet ä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
/boot
filsystemet 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
/boot/grub2/i386-pc
katalogen. 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:Obs!
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)
grub.cfg
Skapa 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 manuellt 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
från en virtuell dator för räddning/reparation 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älpa
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 partitionen som saknas
/boot
kontrollerar du om/boot
filsystemet 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"
/boot
Om filsystemet inte visas iblkid
när du har skapat partitionen igen innebär det att/boot
data inte längre finns. Du måste återskapa/boot
filsystemet (med samma UUID- och filsystemformat som finns i/etc/fstab
/boot
posten) och sedan återställa dess innehåll från en säkerhetskopia.
Återskapa /startpartition i GPT-system
Återskapa partitionen
/boot
från en virtuell dator för räddning/reparation 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>"
/boot
Om filsystemet inte visas när du har skapat partitionen igen innebär det att/boot
data inte längre finns. Du måste återskapa/boot
filsystemet (med samma UUID som finns i/etc/fstab
/boot
posten) och sedan återställa dess innehåll 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 , och ange sedan chroot-miljön/boot
.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.
- Partitionen
/boot
eller dess innehåll saknas.
Du kan lösa det här felet genom att följa de här stegen:
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 , och ange sedan chroot-miljön/boot
.Kontrollera att konfigurationsfilen
/etc/default/grub
är konfigurerad. 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 manuellt.
Obs!
Om filen saknas är
/boot/grub/menu.lst
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.