Грешка при зареждането на Linux на Hyper-V Хешът и сертификатът на изображението не са разрешени

Сблъска се с интересна грешка при опит да инсталирате Linux CentOS на виртуална машина, която работи на Hyper-V сървър (тип виртуална машина Generation 2 - с поддръжка на UEFI). Изтеглих инсталационния файл ISO от CentOS 7, създадох нов gen2 VM на Hyper-V, свързах ISO файла и се опитах да заредя VM от инсталационния диск. Но когато зареждате VM, в конзолата Hyper-V се появи следното съобщение:

 SCSI DVD (0,0). Хешът и сертификатът на изображението не са разрешени (DB). Не беше намерена съвместима с UEFI файлова система. Не беше заредена операционна система. Натиснете клавиш, за да опитате отново последователността на зареждане ... 


Проблемът тук е, че за виртуални машини от поколение 2 Hyper-V използва UEFI среда с активирана защита по подразбиране. Безопасният режим на стартиране не позволява зареждане от неподдържан Linux bootloader в ISO файл (Linux bootloader очевидно не е подписан или сертифициран от Microsoft).

За да започна да инсталирам Linux, трябваше изключвам безопасен режим на зареждане в настройките на виртуалната машина (Настройки -> Защита -> Активиране на сигурна обувка).

Или можете да оставите Secure Boot активиран, но използвайте „Microsoft UEFI сертифициращ орган“Вместо„ Microsoft Windows “. Според Microsoft този шаблон ви позволява да стартирате повечето Linux дистрибуции в режим на съвместимост със Secure Boot.

Рестартирайте VM и опитайте да заредите VM отново от инсталационния iso образ на CentOS или друга дистрибуция на Linux (аз успях да стартирам инсталирането на CentOS 7 и Ubuntu 19.04 по този начин).

Можете също така да контролирате безопасния режим на зареждане и шаблони от PowerShell. Получете текущите настройки на фърмуера на VM:

Get-VMFirmware -VMName "centos7"

Деактивиране на режима за сигурно зареждане за VM:

Set-VMFirmware -VMName "centos7" -EnableSecureBoot Off

Променете модела на валидиране на сертификата за зареждащ инструмент на съвместим с повечето Linux дистрибуции:

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