В миграции HyperV Linux EFI VHDX отсутствует EFI в параметрах загрузки

У меня есть HyperV 2016 кластер из n машина работает на W2k16,

Я продублировал VHDX из RHEL 7.5 (Gen2) ВМ, которая работает с этим порядком загрузки (и безопасная загрузка отключена):

Скриншот

После создания новой виртуальной машины с клонированным диском запись файла EFI исчезла, и я больше не мог загружаться.

Примечание: если я загружаюсь с Rescatux CD Я вижу все загрузочные записи в списке и могу загрузить (вручную с этого диска) в RHEL

1 ответ

Параметры загрузки UEFI хранятся в переменных UEFI, а не на диске. Это верно для физической машины или виртуальных машин. Hyper-V хранит переменные UEFI в одном из файлов состояния виртуальной машины, а не на виртуальном жестком диске. Поэтому, когда вы отсоединили виртуальный жесткий диск от виртуальной машины, вы потеряли переменные UEFI и загрузочные записи.

Если вы хотите клонировать машину, которая зависит от переменных UEFI для загрузки, экспортируйте виртуальную машину и импортируйте ее снова. Это будет держать файлы состояния и виртуальный жесткий диск вместе как набор, а не разделять их на части.

Кстати, не все гостевые ОС настраивают переменные UEFI так, как это делал RHEL, поэтому вы не всегда видите эту проблему. В некоторых ОС, включая Windows, переменная загрузки UEFI указывает на диск, а не файл на диске, а в спецификации UEFI указано, где искать загрузочные файлы в дисках по умолчанию. Я упоминаю об этом только потому, что следующий вопрос, который обычно задают люди, - о том, почему он иногда терпит неудачу.

Другие вопросы по тегам