Назад | Перейти на главную страницу

При миграции Hyper V Linux EFI VHD отсутствует EFI в параметрах загрузки

у меня есть HyperV 2016 кластер из n машин, работающих на W2k16.

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

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

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

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

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

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