Błąd ładowania systemu Linux na Hyper-V Hash i certyfikat obrazu są niedozwolone

Wystąpił interesujący błąd podczas próby zainstalowania systemu Linux CentOS na maszynie wirtualnej działającej na serwerze Hyper-V (typ maszyny wirtualnej Generacji 2 - z obsługą UEFI). Pobrałem plik instalacyjny ISO z CentOS 7, utworzyłem nową maszynę wirtualną gen2 na Hyper-V, podłączyłem plik ISO i próbowałem załadować maszynę wirtualną z dysku instalacyjnego. Ale podczas ładowania maszyny Wirtualnej w konsoli Hyper-V pojawił się następujący komunikat:

 SCSI DVD (0,0). Hash i certyfikat obrazu są niedozwolone (DB). Nie znaleziono systemu plików kompatybilnego z UEFI. Nie załadowano żadnego systemu operacyjnego. Naciśnij klawisz, aby ponowić sekwencję rozruchu ... 


Problem polega na tym, że w przypadku maszyn wirtualnych 2. generacji funkcja Hyper-V korzysta ze środowiska UEFI z domyślnie włączonym zabezpieczeniem rozruchowym. Tryb bezpiecznego rozruchu nie pozwala na uruchomienie z niezaufanego bootloadera Linux w pliku ISO (bootloader Linux nie jest wyraźnie podpisany ani certyfikowany przez Microsoft).

Aby rozpocząć instalację Linuksa, musiałem rozłączyć tryb bezpiecznego rozruchu w ustawieniach maszyny wirtualnej (Ustawienia -> Bezpieczeństwo -> Włącz bezpieczny rozruch).

Możesz też pozostawić włączony Bezpieczny rozruch, ale użyj „Urząd certyfikacji Microsoft UEFI”Zamiast„ Microsoft Windows ”. Według Microsoft ten szablon pozwala na uruchomienie większości dystrybucji Linuksa w trybie zgodności z Bezpiecznym Rozruchem.

Uruchom ponownie maszynę wirtualną i spróbuj ponownie załadować maszynę wirtualną z obrazu ISO instalacji CentOS lub innej dystrybucji systemu Linux (mogłem w ten sposób rozpocząć instalację CentOS 7 i Ubuntu 19.04).

Możesz także kontrolować tryb bezpiecznego uruchamiania i szablony z PowerShell. Pobierz aktualne ustawienia oprogramowania układowego VM:

Get-VMFirmware -VMName „centos7”

Wyłącz tryb bezpiecznego rozruchu dla maszyny wirtualnej:

Ustaw-VMFirmware -VMName "centos7" -EnableSecureBoot Off

Zmień wzór sprawdzania poprawności certyfikatu programu ładującego na zgodny z większością dystrybucji systemu Linux:

Set-VMFirmware -VMName „centos7” -EnableSecureBoot On -SecureBootTemplate „MicrosoftUEFICertificateAuthority”