Помилка завантаження Linux на Hyper-V The image's hash and certificate are not allowed

Зіткнувся з цікавою помилкою при спробі встановити Linux CentOS на віртуальну машину, яка запущено на Hyper-V сервері (тип віртуальної машини Generation 2 - з підтримкою UEFI). Я скачав інсталяційний ISO файл з CentOS 7, створив на Hyper-V нову ВМ типу gen2, підключив ISO файл і спробував завантажити ВМ з установочного диск. Але при завантаженні ВМ в консолі Hyper-V з'явилося ось таке повідомлення:

 SCSI DVD (0,0). The image's hash and certificate are not allowed (DB). No UEFI-compatible file system was found. No operating system was loaded. Press a key to retry the boot sequence ... 


Проблема тут в тому, що для віртуальних машин Generation 2 в Hyper-V використовується середу UEFI з включеним за замовчуванням режимом Secure Boot. Режим безпечного завантаження не дозволяє завантажиться з недовірених завантажувача Linux в ISO файлі (завантажувач Linux явно не підписаний і не сертифікований Microsoft-ом).

Щоб почати установку Linux мені довелося відключити режим безпечного завантаження в настройках віртуальної машини (Settings -> Security -> Enable Secure Boot).

Або можна залишити Secure Boot включеним, але використовувати шаблон «Microsoft UEFI Certificate Authority»Замість" Microsoft Windows ". За інформацією Microsoft даний шаблон дозволяє запускати більшість дістрібутовов Linux в режимі сумісності з Secure Boot.

Перезапустіть ВМ і ще раз спробуйте завантажити ВМ з установочнго iso образу CentOS або іншого дістрбутіва Linux (у мене вийшло таким чином запустити установку CentOS 7 і Ubuntu 19.04).

Так само ви можете управляти режимом безпечного завантаження і шаблонами з PowerShell. Отримати поточні настройки firmware ВМ:

Get-VMFirmware -VMName "centos7"

Вийти з режиму Secure Boot для ВМ:

Set-VMFirmware -VMName "centos7" -EnableSecureBoot Off

Змінити шаблон перевірки СЕРТФІКАТА завантажувача на сумісний з більшістю дистрибутивів Linux:

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