Столкнулся с интересной ошибкой при попытке установить 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"