Chyba pri načítaní systému Linux na serveri Hyper-V hash a certifikát obrázka nie sú povolené

Pri pokuse o inštaláciu systému Linux CentOS na virtuálny počítač, ktorý je spustený na serveri Hyper-V (typ virtuálneho počítača Generácia 2 - s podporou UEFI), sa vyskytla zaujímavá chyba. Stiahol som si inštalačný súbor ISO z CentOS 7, vytvoril som nový gen2 VM na Hyper-V, pripojil som ISO súbor a pokúsil sa načítať VM z inštalačného disku. Pri načítaní VM sa však v konzole Hyper-V objavila táto správa:

 DVD SCSI (0,0). Hash a certifikát obrázka nie sú povolené (DB). Nenašiel sa žiadny súborový systém kompatibilný s UEFI. Nebol zavedený žiadny operačný systém. Stlačením klávesu zopakujete postupnosť spustenia ... 


Problém je v tom, že v prípade virtuálnych počítačov 2. generácie používa Hyper-V prostredie UEFI s predvoleným povoleným zabezpečeným zavádzaním. Bezpečný bootovací režim neumožňuje zavádzanie z nedôveryhodného zavádzača systému Linux do súboru ISO (zavádzač systému Linux jednoznačne nie je podpísaný ani certifikovaný spoločnosťou Microsoft).

Aby som začal inštalovať Linux, musel som vypnutie bezpečný režim bootovania v nastaveniach virtuálneho počítača (Nastavenia -> Zabezpečenie -> Povoliť zabezpečené zavedenie).

Alebo môžete nechať Secure Boot zapnuté, ale použite „Certifikačná autorita spoločnosti Microsoft UEFI“Namiesto„ Microsoft Windows “. Podľa spoločnosti Microsoft vám táto šablóna umožňuje spustiť väčšinu distribúcií systému Linux v režime kompatibility s programom Secure Boot.

Reštartujte VM a skúste znova načítať VM z obrazu inštalácie CentOS alebo inej distribúcie Linuxu (týmto spôsobom som bol schopný spustiť inštaláciu CentOS 7 a Ubuntu 19.04).

Režim Power Boell môžete ovládať aj pomocou šablón. Získajte aktuálne nastavenia firmvéru VM:

Get-VMFirmware -VMName "centos7"

Vypnite režim Secure Boot pre VM:

Set-VMFirmware -VMName "centos7" -EnableSecureBoot Off

Zmeňte vzor validácie certifikátu bootloadera na kompatibilný s väčšinou distribúcií Linuxu:

Set-VMFirmware -VMName "centos7" -EnableSecureBoot On -SecureBootTemplate "MicrosoftUEFICertificateAuthority"