Felsöka UEFI-startfel på virtuella Linux-datorer i Azure
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.
Linux-partneravbildningar på Azure Marketplace är taggade och konfigurerade för både START av BIOS generation 1 och UEFI-start (Unified Extensible Firmware Interface) generation 2.
När du distribuerar virtuella Linux-datorer av generation 2 i Azure kan det uppstå UEFI-startfel. I den här artikeln beskrivs några scenarier där UEFI-startfel inträffar och tillhandahåller lösningar.
Symptom
När du distribuerar en virtuell Linux-dator av generation 2 i Azure misslyckas starten och servern är otillgänglig.
Identifiera UEFI-startfel
Kontrollera den virtuella datorns aktuella tillstånd med hjälp av Azure Boot-diagnostiken.
Skärmbilden av startdiagnostiken visar följande felmeddelanden:
Fel 1
Startsammanfattning för virtuell dator
- Okänd enhet
Startinläsaren läste inte in något operativsystem. - SCSI-disk (0,0)
Startinläsaren läste inte in något operativsystem. - SCSI-disk (0,1)
Startinläsaren läste inte in något operativsystem. - Nätverkskort (000D3A4DD64D)
En startavbildning hittades inte.
Inget operativsystem lästes in. Den virtuella datorn kan vara felaktigt konfigurerad. Avsluta och konfigurera om den virtuella datorn eller klicka på Starta om för att försöka igen med den aktuella startsekvensen.
- Okänd enhet
Fel 2
Starta PXE över IPv4
Innan du felsöker
För att utföra den offline-VM-reparation som krävs för scenario 1: UEFI-partitionen i startavbildningen saknas och Scenario 2: UEFI-partitionen i startavbildningen är skadad kontrollerar du att du har åtkomst till Azure CLI eller Azure Cloud Shell.
Scenario 1: UEFI-partitionen i startavbildningen saknas
Om UEFI-startinläsningspartitionen saknas eller tas bort går det inte att starta den virtuella Linux-datorn av generation 2.
Följ dessa anvisningar för att lösa problemet:
Använd kommandot az vm repair create för att skapa en virtuell reparationsdator. Den virtuella reparationsdatorn har en kopia av OS-disken för den icke-funktionella virtuella datorn. Mer information finns i Reparera en virtuell Linux-dator med hjälp av reparationskommandona för virtuella Azure-datorer.
Återskapa partitionen med hjälp av följande kommandon:
root@repair-centos7:~# 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): p Disk /dev/sdc: 134217728 sectors, 64.0 GiB Model: Virtual Disk Sector size (logical/physical): 512/4096 bytes Disk identifier (GUID): <Disk GUID> 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 1019837 sectors (498.0 MiB) Number Start (sector) End (sector) Size Code Name 1 1026048 3123199 1024.0 MiB 0700 2 3123200 134215679 62.5 GiB 8E00 14 2048 10239 4.0 MiB EF02 Command (? for help): n Partition number (3-128, default 3): First sector (34-134217694, default = 10240) or {+-}size{KMGTP}: 10240 Last sector (10240-1026047, default = 1026047) or {+-}size{KMGTP}: 1026047 Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): ef00 Changed type of partition to 'EFI System' 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): <Disk GUID> 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 4029 sectors (2.0 MiB) Number Start (sector) End (sector) Size Code Name 1 1026048 3123199 1024.0 MiB 0700 2 3123200 134215679 62.5 GiB 8E00 3 10240 1026047 496.0 MiB EF00 EFI System 14 2048 10239 4.0 MiB EF02 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.
Viktigt!
- Ersätt
/dev/sdc
med motsvarande kopia av operativsystemdiskenheten (OS). - Valet av partitionsnummer spelar ingen roll så länge sektorns start- och slutpunkter är korrekta. Rätt start- och slutpunkter för sektorn väljs eftersom operativsystemet kan fastställa vilka sektorer som saknas.
- Se till att slutsektorn inte används av någon annan partition i disken. Det räcker med att välja standardvärden här.
Azure Linux-partnerbilder har följande partitionsnummer, sektorstartpunkter och sektorslutpunkter:
Linux OS-distribution EFI-partitionsnummer Sektorstart Sektorslut CentOS 7 15 10240 1024000 CentOS 8 15 10240 1024000 Debian 10 15 8192 262143 Debian 11 15 8192 262143 RHEL 7 1 2048 1026047 RHEL 8 15 10240 1024000 Oracle Linux 7 15 10240 1024000 Oracle Linux 8 15 10240 1024000 Ubuntu 18.04 15 10240 227327 Ubuntu 20.04 15 10240 227327 SLES 12 2 6144 1054719 SLES 15 2 6144 1054719 - Ersätt
När partitionen har återskapats återställer du den virtuella datorn genom att byta den reparerade OS-disken mot den ursprungliga OS-disken på den virtuella datorn med hjälp av kommandot az vm repair restore . Mer information finns i steg 5 i Reparera en virtuell Linux-dator med hjälp av reparationskommandona för virtuella Azure-datorer.
Scenario 2: UEFI-partitionen i startavbildningen är skadad
Om UEFI-startpartitionen är skadad kan den virtuella Linux-datorn av generation 2 inte startas. Följ dessa anvisningar för att lösa problemet:
Använd kommandot az vm repair create för att skapa en virtuell reparationsdator. Den virtuella reparationsdatorn har en kopia av OS-disken för den icke-funktionella virtuella datorn. Mer information finns i Reparera en virtuell Linux-dator med hjälp av reparationskommandona för virtuella Azure-datorer.
Rensa den skadade partitionen med hjälp av följande kommandon:
root@repair-centos7:~# gdisk -l /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. Disk /dev/sdc: 134217728 sectors, 64.0 GiB Model: Virtual Disk Sector size (logical/physical): 512/4096 bytes Disk identifier (GUID): <Disk GUID> 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 4029 sectors (2.0 MiB) Number Start (sector) End (sector) Size Code Name 1 1026048 3123199 1024.0 MiB 0700 2 3123200 134215679 62.5 GiB 8E00 3 10240 1026047 496.0 MiB EF00 EFI System 14 2048 10239 4.0 MiB EF02 root@repair-centos7:~# fsck.vfat -n /dev/sdc3 fsck.fat 4.1 (2017-01-24) 0x25: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt. Automatically removing dirty bit. Leaving filesystem unchanged. /dev/sdc3: 19 files, 1438/63326 clusters root@repair-centos7:~# fsck.vfat /dev/sdc3 fsck.fat 4.1 (2017-01-24) 0x25: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt. 1) Remove dirty bit 2) No action ? 1 Perform changes ? (y/n) y /dev/sdc3: 19 files, 1438/63326 clusters root@repair-centos7:~# fsck.vfat /dev/sdc3 fsck.fat 4.1 (2017-01-24) /dev/sdc3: 19 files, 1438/63326 clusters
Viktigt!
- Ersätt
/dev/sdc
med motsvarande kopia av OS-diskenheten. - Ta alltid en säkerhetskopia av OS-disken och utför en torr körning med
-n
alternativet innan du utför filsystemkontrollen som nämns ovan. - Kommandot
dosfsck
kan användas för att utföra vfat-filsystemkontrollen. Båda kommandona är desamma. Mer information finns i fsck.vfat.
- Ersätt
När partitionen har rensats återställer du den virtuella datorn genom att byta den reparerade OS-disken mot den ursprungliga OS-disken på den virtuella datorn med hjälp av kommandot az vm repair restore . Mer information finns i steg 5 i Reparera en virtuell Linux-dator med hjälp av reparationskommandona för virtuella Azure-datorer.
Scenario 3: Hela /boot-partitionsinnehållet tas bort
Om hela /boot-partitionen eller annat viktigt innehåll saknas och inte kan återställas är det enda alternativet att återställa 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.
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.