На днях я сконвертировал несколько виртуальных серверов Hyper-V 2012R2 в VMware vSphere 6.5, и тут коллеги заметили, что VMRC как-то странно ругается.
Опытным путем было выяснено, что он ругается на включенный UEFI в их серверах. Коллеги подтвердили, что сервера были развернуты с системой UEFI и режимом SecureBoot, который после конвертации на VMware был отключен. Причем они сказали, что в Hyper-V GEN2-машинах UEFI включается автоматически.
Я проверил настройку по умолчанию для Windows 2012/2016 в VMware – там рекомендуемый режим – BIOS.
Пойдемте разбираться вместе, кто прав 😉
UEFI – это низкоуровневое ПО (firmware), пришедшее на смену BIOS лет 15 назад. Оно отличается поддержкой нового оборудования и дополнительным функционалом.
Почему тогда у VMware vSphere рекомендуемая спецификация – устаревший BIOS?
Достаточно исчерпывающий ответ дал на это разработчик VMware Дариус (тут только выжимка):
- UEFI требует большего объема ОЗУ. Минимальный объем ОЗУ – 96МБ, тогда как виртуальную машину с BIOS можно запустить на 4МБ ОЗУ;
- для работы Fault Tolerance машина должна иметь BIOS.
Зачем вам может понадобиться UEFI для виртуальных машин?
- загрузка с диска размером более 2ТБ;
- возможность редактирования порядка загрузки ОС, даже если она не загружена, потому что UEFI умеет работать с файловыми системами;
- загрузка с USB доступна только с UEFI виртуальными машинами;
- если вы захотите использовать SecureBoot, vTPM и Credential Guard, вам придется использовать UEFI.
Обратите внимание: поменять тип этого firmware вы, конечно, можете на выключенной ВМ. Но вот делать этого после установки операционной системы не рекомендуется. Относительно безболезненной смену BIOS->UEFI можно назвать только в Windows10/Windows 2016:
- делаете бэкап ВМ;
- запускаете утилиту MBR2GPT для проверки возможности смены типа таблицы разделов (MBR2GPT.EXE /validate /allowFullOS)
- конвертируете таблицу разделов MBR2GPT.EXE /convert /allowFullOS;
- выключаете ВМ и меняете тип firmware на UEFI. Обратите внимание, что UEFI поддерживается только в v13 версии виртуального железа (совместимого с VMware vSphere 6.5);
- включаете и проверяете, что машина успешно загрузилась, а таблица разделов стала иметь GPT-тип.
Какой же тип выбрать или BIOS vs UEFI?
Я рекомендую начать переход на UEFI для ваших виртуальных Windows, так как:
- смена BIOS->UEFI достаточно болезненный процесс;
- с включенным UEFI вы можете достаточно легко включить SecureBoot для защиты от руткитов и неподписанных драйверов в ваших ВМ;
- в дальнейшем вы сможете использовать Virtualization-based Security (тыц). Правда, это поддерживается только в Windows 10, Windows 2016 и Windows 2019, причем версия виртуального железа должна быть v14 (совместима только с vSphere 6.7). Кстати говоря, если вы создаете ВМ с такой операционной системой в v14 версии виртуального железа, там по умолчанию будет выставлена UEFI!