Udostępnij za pośrednictwem


Rozwiązywanie problemów z błędami rozruchu UEFI na maszynach wirtualnych z systemem Azure Linux

Uwaga

CentOS, do którego odwołuje się ten artykuł, jest dystrybucją systemu Linux i osiągnie koniec życia (EOL). Rozważ użycie i odpowiednio zaplanuj. Aby uzyskać więcej informacji, zobacz Wskazówki dotyczące końca życia systemu CentOS.

Obrazy partnerów systemu Linux w Azure Marketplace są oznaczane i konfigurowane zarówno dla rozruchu biosu generacji 1, jak i ujednoliconego rozszerzalnego interfejsu układowego (UEFI) generacji 2. generacji.

Podczas wdrażania maszyn wirtualnych z systemem Linux generacji 2 na platformie Azure mogą wystąpić błędy rozruchu UEFI. W tym artykule omówiono niektóre scenariusze, w których występują błędy rozruchu UEFI i przedstawiono rozwiązania.

Symptomy

Podczas wdrażania maszyny wirtualnej z systemem Linux generacji 2 na platformie Azure rozruch kończy się niepowodzeniem, a serwer jest niedostępny.

Identyfikowanie błędów rozruchu interfejsu UEFI

Sprawdź bieżący stan maszyny wirtualnej przy użyciu diagnostyki rozruchu platformy Azure.

Zrzut ekranu diagnostyki rozruchu przedstawia następujące komunikaty o błędach:

  • Błąd 1

    Podsumowanie rozruchu maszyny wirtualnej

    1. Nieznane urządzenie
      Moduł ładujący rozruch nie załaduje systemu operacyjnego.
    2. Dysk SCSI (0,0)
      Moduł ładujący rozruch nie załaduje systemu operacyjnego.
    3. Dysk SCSI (0,1)
      Moduł ładujący rozruch nie załaduje systemu operacyjnego.
    4. Karta sieciowa (000D3A4DD64D)
      Nie odnaleziono obrazu rozruchowego.

    Nie załadowano żadnego systemu operacyjnego. Maszyna wirtualna może być niepoprawnie skonfigurowana. Zamknij i ponownie skonfiguruj maszynę wirtualną lub kliknij przycisk uruchom ponownie, aby ponownie ponowić próbę wykonania bieżącej sekwencji rozruchu.

    Zrzut ekranu przedstawiający komunikat o błędzie funkcji Hyper-V dotyczący braku obrazu rozruchowego UEFI.

  • Błąd 2

    Uruchamianie środowiska PXE za pośrednictwem protokołu IPv4

    Zrzut ekranu przedstawiający przejście błędu funkcji hyper-V do problemu z rozruchem środowiska PXE.

Przed rozpoczęciem rozwiązywania problemów

Aby wykonać naprawę maszyny wirtualnej w trybie offline, która jest wymagana w przypadku scenariusza 1: brak partycji UEFI w obrazie rozruchowym, a scenariusz 2: partycja UEFI na obrazie rozruchowym jest uszkodzona, upewnij się, że masz dostęp do interfejsu wiersza polecenia platformy Azure lub usługi Azure Cloud Shell.

Scenariusz 1. Brak partycji UEFI w obrazie rozruchowym

Jeśli brakuje lub usunięto partycję modułu ładującego rozruchu UEFI, rozruch maszyny wirtualnej z systemem Linux 2. generacji zakończy się niepowodzeniem.

Aby rozwiązać ten problem, wykonaj następujące kroki:

  1. Użyj polecenia az vm repair create , aby utworzyć maszynę wirtualną naprawczą. Naprawa maszyny wirtualnej będzie mieć kopię dysku systemu operacyjnego dla nie funkcjonalnej maszyny wirtualnej dołączonej. Aby uzyskać więcej informacji, zobacz Naprawianie maszyny wirtualnej z systemem Linux przy użyciu poleceń naprawy maszyny wirtualnej platformy Azure.

  2. Utwórz ponownie partycję przy użyciu następujących poleceń:

    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.
    

    Ważna

    • Zastąp /dev/sdc element odpowiednią kopią urządzenia dyskowego systemu operacyjnego.
    • Wybór numeru partycji nie ma znaczenia, o ile punkt początkowy i końcowy sektora są poprawne. Wybierane są prawidłowe punkty początkowe i końcowe sektora, ponieważ system operacyjny jest w stanie określić brakujące sektory.
    • Upewnij się, że sektor końcowy nie jest zajęty przez żadną inną partycję na dysku. Tutaj należy wybrać wartości domyślne.

    Obrazy partnerów platformy Azure z systemem Linux mają następujący numer partycji, punkty początkowe sektora i punkty końcowe sektora:

    Dystrybucja systemu operacyjnego Linux Numer partycji EFI Początek sektora Koniec sektora
    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
  3. Po ponownym utworzeniu partycji przywróć maszynę wirtualną, zamieniając naprawiony dysk systemu operacyjnego na oryginalny dysk systemu operacyjnego maszyny wirtualnej za pomocą polecenia az vm repair restore . Aby uzyskać więcej informacji, zobacz krok 5 w artykule Naprawianie maszyny wirtualnej z systemem Linux przy użyciu poleceń naprawy maszyny wirtualnej platformy Azure.

Scenariusz 2. Partycja UEFI w obrazie rozruchowym jest uszkodzona

Jeśli partycja rozruchowa UEFI jest uszkodzona, rozruch maszyny wirtualnej z systemem Linux 2. generacji zakończy się niepowodzeniem. Aby rozwiązać ten problem, wykonaj następujące kroki:

  1. Użyj polecenia az vm repair create , aby utworzyć maszynę wirtualną naprawczą. Naprawa maszyny wirtualnej będzie mieć kopię dysku systemu operacyjnego dla nie funkcjonalnej maszyny wirtualnej dołączonej. Aby uzyskać więcej informacji, zobacz Naprawianie maszyny wirtualnej z systemem Linux przy użyciu poleceń naprawy maszyny wirtualnej platformy Azure.

  2. Wyczyść uszkodzoną partycję przy użyciu następujących poleceń:

    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
    

    Ważna

    • Zastąp /dev/sdc element odpowiednią kopią urządzenia dyskowego systemu operacyjnego.
    • Zawsze wykonaj kopię zapasową dysku systemu operacyjnego i wykonaj suchy przebieg z -n opcją przed wykonaniem kontroli systemu plików wymienionej powyżej.
    • Polecenie dosfsck może służyć do sprawdzania systemu plików vfat. Oba polecenia są takie same. Aby uzyskać więcej informacji, zobacz fsck.vfat.
  3. Po oczyszczeniu partycji przywróć maszynę wirtualną, zamieniając naprawiony dysk systemu operacyjnego na oryginalny dysk systemu operacyjnego maszyny wirtualnej za pomocą polecenia az vm repair restore . Aby uzyskać więcej informacji, zobacz krok 5 w artykule Naprawianie maszyny wirtualnej z systemem Linux przy użyciu poleceń naprawy maszyny wirtualnej platformy Azure.

Scenariusz 3. Cała zawartość partycji /boot jest usuwana

Jeśli brakuje całej partycji /boot lub innej ważnej zawartości i nie można jej odzyskać, jedynym rozwiązaniem jest przywrócenie maszyny wirtualnej z kopii zapasowej. Aby uzyskać więcej informacji, zobacz How to restore Azure VM data in Azure Portal (Jak przywrócić dane maszyny wirtualnej platformy Azure w Azure Portal).

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.