Rozwiązywanie problemów z błędami rozruchu UEFI na maszynach wirtualnych z systemem Linux na platformie Azure
Dotyczy: ✔️ maszyny wirtualne z systemem Linux
Uwaga
CentOS, do których odwołuje się ten artykuł, jest dystrybucją systemu Linux i osiągnie koniec życia (EOL). Rozważ odpowiednie użycie i zaplanuj. Aby uzyskać więcej informacji, zobacz CentOS End Of Life guidance (Wskazówki dotyczące zakończenia życia systemu CentOS).
Obrazy partnerów systemu Linux w witrynie Azure Marketplace są oznaczane i konfigurowane pod kątem rozruchu generacji 1 systemu BIOS i rozruchu unified Extensible Firmware Interface (UEFI) generacji 2.
Podczas wdrażania maszyn wirtualnych generacji 2 z systemem Linux 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 INTERFEJSu UEFI i udostępniają rozwiązania.
Objawy
Podczas wdrażania maszyny wirtualnej z systemem Linux generacji 2 na platformie Azure rozruch kończy się niepowodzeniem i 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
- Nieznane urządzenie
Moduł ładujący rozruch nie załadował systemu operacyjnego. - Dysk SCSI (0,0)
Moduł ładujący rozruch nie załadował systemu operacyjnego. - Dysk SCSI (0,1)
Moduł ładujący rozruch nie załadował systemu operacyjnego. - Karta sieciowa (000D3A4DD64D)
Nie znaleziono obrazu rozruchowego.
Nie załadowano żadnego systemu operacyjnego. Maszynę wirtualną można skonfigurować niepoprawnie. Zamknij i ponownie skonfiguruj maszynę wirtualną lub kliknij przycisk uruchom ponownie, aby ponowić próbę ponownego uruchomienia bieżącej sekwencji rozruchowej.
- Nieznane urządzenie
Błąd 2
Uruchamianie środowiska PXE za pośrednictwem protokołu IPv4
Przed rozpoczęciem rozwiązywania problemów
Aby wykonać naprawę maszyny wirtualnej w trybie offline wymaganą w scenariuszu 1: brak partycji UEFI w obrazie rozruchowym, a w scenariuszu 2: partycja UEFI w 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 partycji modułu ładującego rozruchu UEFI lub zostanie ona usunięta, rozruch maszyny wirtualnej z systemem Linux generacji 2 zakończy się niepowodzeniem.
Aby rozwiązać ten problem, wykonaj poniższe czynności:
Użyj polecenia az vm repair create, aby utworzyć maszynę wirtualną naprawy. Maszyna wirtualna naprawy będzie mieć kopię dysku systemu operacyjnego dla niefunkcjonanej 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.
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żne
- Zastąp
/dev/sdc
element odpowiednią kopią urządzenia z dyskiem systemu operacyjnego( OS). - Wybór numeru partycji nie ma znaczenia, o ile punkt początkowy i końcowy sektora jest poprawny. Wybrano 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. Wybranie wartości domyślnych powinno być wystarczające tutaj.
Obrazy partnerów systemu Linux platformy Azure 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 - Zastąp
Po ponownym utworzeniu partycji przywróć maszynę wirtualną, zamieniając naprawiony dysk systemu operacyjnego na oryginalny dysk systemu operacyjnego maszyny wirtualnej przy użyciu polecenia az vm repair restore . Aby uzyskać więcej informacji, zobacz krok 5 w temacie 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 generacji 2 zakończy się niepowodzeniem. Aby rozwiązać ten problem, wykonaj poniższe czynności:
Użyj polecenia az vm repair create, aby utworzyć maszynę wirtualną naprawy. Maszyna wirtualna naprawy będzie mieć kopię dysku systemu operacyjnego dla niefunkcjonanej 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.
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żne
- Zastąp
/dev/sdc
element odpowiednią kopią urządzenia z dyskiem 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.
- Zastąp
Po wyczyszczeniu partycji przywróć maszynę wirtualną, zamieniając naprawiony dysk systemu operacyjnego na oryginalny dysk systemu operacyjnego maszyny wirtualnej przy użyciu polecenia az vm repair restore . Aby uzyskać więcej informacji, zobacz krok 5 w temacie 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ć, przywracanie maszyny wirtualnej z kopii zapasowej jest jedyną opcją. Aby uzyskać więcej informacji, zobacz Jak przywrócić dane maszyny wirtualnej platformy Azure w witrynie Azure Portal.
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pomoc techniczną społeczności platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.