
У меня есть HyperV 2016
кластер из n машин, работающих на W2k16
.
Я продублировал VHDX
виртуальную RHEL 7.5 (Gen2)
машину, которая работает с таким порядком загрузки (и отключенной безопасной загрузкой):
После создания новой виртуальной машины с клонированным диском запись файла EFI исчезла, и я больше не смог загрузить ее.
Примечание: Если я загружаюсь с диска, Rescatux CD
я вижу, что все загрузочные записи указаны правильно, и я могу загрузиться (вручную с этого диска) вRHEL
решение1
Параметры загрузки UEFI хранятся в переменных UEFI, а не на диске. Это справедливо для физических машин или виртуальных машин. Hyper-V хранит переменные UEFI в одном из файлов состояния виртуальной машины, а не в VHD. Поэтому при отсоединении VHD от виртуальной машины вы теряете переменные UEFI и загрузочные записи.
Если вы хотите клонировать машину, которая зависит от переменных UEFI для загрузки, экспортируйте VM и импортируйте ее снова. Это сохранит файлы состояния и VHD вместе как набор, а не разделит их.
Кстати, не все гостевые ОС настраивают переменные UEFI так, как это сделал RHEL, поэтому вы не всегда видите эту проблему. Некоторые ОС, включая Windows, настраивают переменную загрузки UEFI так, чтобы она указывала на диск, а не на файл на диске, а спецификация UEFI говорит, где найти загрузочные файлы в местах по умолчанию на диске. Я упоминаю об этом только потому, что следующий вопрос, который обычно задают люди, касается того, почему это, кажется, не срабатывает только иногда.