Freigeben über


Beheben von UEFI-Startfehlern auf virtuellen Azure Linux-Computern

Gilt für: ✔️ Linux-VMs

Notiz

CentOS, auf das in diesem Artikel verwiesen wird, ist eine Linux-Verteilung und wird End Of Life (EOL) erreichen. Sie sollten sich Ihre Nutzung dieser Distribution ansehen und entsprechend planen. Weitere Informationen finden Sie unter CentOS End Of Life Guidance.

Linux-Partnerimages in Azure Marketplace werden sowohl für den Start der BIOS-Generation 1 als auch für den UEFI-Start der Generation 2 (Unified Extensible Firmware Interface) gekennzeichnet und konfiguriert.

Wenn Sie virtuelle Computer der Generation 2 linux (VMs) in Azure bereitstellen, treten UEFI-Startfehler auf. In diesem Artikel werden einige Szenarien erläutert, in denen UEFI-Startfehler auftreten und Lösungen zur Verfügung stellen.

Problembeschreibung

Wenn Sie eine Linux-VM der Generation 2 in Azure bereitstellen, schlägt der Start fehl, und auf den Server kann nicht zugegriffen werden.

Identifizieren von UEFI-Startfehlern

Überprüfen Sie den aktuellen Status Ihrer VM mithilfe der Azure-Startdiagnose.

Der Screenshot der Startdiagnose zeigt die folgenden Fehlermeldungen:

  • Fehler 1

    Startzusammenfassung für virtuelle Computer

    1. Unbekanntes Gerät
      Das Startladeprogramm hat kein Betriebssystem geladen.
    2. SCSI-Datenträger (0,0)
      Das Startladeprogramm hat kein Betriebssystem geladen.
    3. SCSI-Datenträger (0,1)
      Das Startladeprogramm hat kein Betriebssystem geladen.
    4. Netzwerkadapter (000D3A4DD64D)
      Es wurde kein Startimage gefunden.

    Es wurde kein Betriebssystem geladen. Ihr virtueller Computer ist möglicherweise falsch konfiguriert. Beenden Sie Ihren virtuellen Computer, und konfigurieren Sie sie erneut, oder klicken Sie auf "Neustart", um die aktuelle Startsequenz erneut zu wiederholen.

    Screenshot der Hyper-V-Fehlermeldung für fehlendes UEFI-Startimage.

  • Fehler 2

    PXE über IPv4 starten

    Screenshot des Übergangs des Hyper-V-Fehlers zum PXE-Startproblem.

Vor Beginn der Problembehandlung

Zum Ausführen der Offline-VM-Reparatur, die für Szenario 1 erforderlich ist: UEFI-Partition im Startimage fehlt und Szenario 2: UEFI-Partition im Startimage ist beschädigt, stellen Sie sicher, dass Sie Zugriff auf Azure CLI oder Azure Cloud Shell haben.

Szenario 1: Die UEFI-Partition im Startimage fehlt.

Wenn die UEFI-Startladeprogrammpartition fehlt oder gelöscht wird, schlägt die Linux-VM der Generation 2 fehl.

Gehen Sie folgendermaßen vor, um das Problem zu beheben:

  1. Verwenden Sie den Befehl zum Erstellen der Az-VM-Reparatur, um eine Reparatur-VM zu erstellen. Die Reparatur-VM verfügt über eine Kopie des Betriebssystemdatenträgers für die nicht funktionsfähige VM angefügt. Weitere Informationen finden Sie unter Reparieren einer Linux-VM mithilfe der Reparaturbefehle des virtuellen Azure-Computers.

  2. Erstellen Sie die Partition mit den folgenden Befehlen neu:

    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.
    

    Wichtig

    • Ersetzen Sie durch /dev/sdc die entsprechende Kopie des Betriebssystemdatenträgergeräts (Betriebssystem).
    • Die Auswahl der Partitionsnummer spielt keine Rolle, solange der Branchenanfang und die Endpunkte korrekt sind. Die richtigen Anfangs- und Endpunkte für den Sektor werden ausgewählt, da das Betriebssystem die fehlenden Sektoren ermitteln kann.
    • Stellen Sie sicher, dass der endende Sektor nicht von einer anderen Partition auf dem Datenträger belegt ist. Die Auswahl von Standardwerten sollte hier ausreichen.

    Azure Linux-Partnerimages weisen die folgende Partitionsnummer, Branchenanfangspunkte und Branchenendpunkte auf:

    Linux-Betriebssystemverteilung EFI-Partitionsnummer Branchenstart Sektorende
    CentOS 7: 15 10.240 1024000
    CentOS 8 15 10.240 1024000
    Debian 10 15 8192 262143
    Debian 11 15 8192 262143
    RHEL 7 1 2048 1026047
    RHEL 8 15 10.240 1024000
    Oracle Linux 7 15 10.240 1024000
    Oracle Linux 8 15 10.240 1024000
    Ubuntu 18.04 15 10.240 227327
    Ubuntu 20.04 15 10.240 227327
    SLES 12 2 6144 1054719
    SLES 15 2 6144 1054719
  3. Nachdem die Partition neu erstellt wurde, stellen Sie den virtuellen Computer wieder her, indem Sie den reparierten Betriebssystemdatenträger mit dem ursprünglichen Betriebssystemdatenträger der VM austauschen, indem Sie den Befehl "Wiederherstellung des virtuellen Computers az vm reparieren" verwenden. Weitere Informationen finden Sie in Schritt 5 unter Reparieren einer Linux-VM mithilfe der Reparaturbefehle für virtuelle Azure-Computer.

Szenario 2: Die UEFI-Partition im Startimage ist beschädigt.

Wenn die UEFI-Startpartition beschädigt ist, kann die Linux-VM der Generation 2 nicht gestartet werden. Gehen Sie folgendermaßen vor, um das Problem zu beheben:

  1. Verwenden Sie den Befehl zum Erstellen der Az-VM-Reparatur, um eine Reparatur-VM zu erstellen. Die Reparatur-VM verfügt über eine Kopie des Betriebssystemdatenträgers für die nicht funktionsfähige VM angefügt. Weitere Informationen finden Sie unter Reparieren einer Linux-VM mithilfe der Reparaturbefehle des virtuellen Azure-Computers.

  2. Bereinigen Sie die beschädigte Partition mithilfe der folgenden Befehle:

    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
    

    Wichtig

    • Ersetzen Sie durch /dev/sdc die entsprechende Kopie des Betriebssystemdatenträgergeräts.
    • Übernehmen Sie immer eine Sicherung des Betriebssystemdatenträgers, und führen Sie eine Trockenausführung mit der -n Option aus, bevor Sie die oben erwähnte Dateisystemprüfung durchführen.
    • Der dosfsck Befehl kann zum Ausführen der Vfat-Dateisystemprüfung verwendet werden. Beide Befehle sind identisch. Weitere Informationen finden Sie unter fsck.vfat.
  3. Nachdem die Partition bereinigt wurde, stellen Sie den virtuellen Computer wieder her, indem Sie den reparierten Betriebssystemdatenträger mit dem ursprünglichen Betriebssystemdatenträger der VM austauschen, indem Sie den Befehl "az vm repair restore " verwenden. Weitere Informationen finden Sie in Schritt 5 unter Reparieren einer Linux-VM mithilfe der Reparaturbefehle für virtuelle Azure-Computer.

Szenario 3: Der gesamte /boot-Partitionsinhalt wird gelöscht.

Wenn die gesamte /boot-Partition oder andere wichtige Inhalte fehlen und nicht wiederhergestellt werden können, ist die Wiederherstellung des virtuellen Computers aus einer Sicherung die einzige Option. Weitere Informationen finden Sie unter Wiederherstellen von Azure-VM-Daten in Azure-Portal.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.