Итак, мы наконец укусили пулю и начали использовать UEFI для наших настольных компьютеров. Он отлично работает с нашими образами Hyper V - мы можем создавать виртуальные машины второго поколения в течение всего дня. Это верно до тех пор, пока нам не понадобится воссоздать образ. Как настроить виртуальную машину второго поколения с существующей ОС для загрузки с PXE?
Да хоть убей, я не могу изменить порядок загрузки, чтобы разрешить загрузку по сети. В интерфейсе прошивки в системных настройках перечислены только менеджеры загрузки Windows. Больно и медленно удалять и воссоздавать виртуальные машины каждый раз, когда мы хотим попробовать новый вариант образа. Как мы можем решить эту проблему? Я предполагаю, что в виртуальной машине есть какой-то скрытый флаг, который мне нужно отредактировать с помощью Powershell, но документации нет.
У меня те же проблемы / проблемы, что и у Тима Бригама. То, что у вас (Григория) есть варианты, не значит, что они у нас есть. Вот снимок экрана с вариантами загрузки, которые у меня есть на виртуальной машине: Удерживание shift не работает, как вы описываете. Кажется, это работает.
Как изменить порядок загрузки (сначала сетевая карта):
Я провел некоторое исследование, и мне кажется, что вы можете изменить порядок загрузки только для виртуальных машин поколения 2, работающих на Windows Server 2012 R2 или новее, с помощью powershell. Я использовал следующие команды PowerShell, чтобы изменить порядок загрузки:
$VM = Get-VM "VmName"
$network = $VM | Get-VMFirmware |select -ExpandProperty BootOrder | where {$_.FirmwarePath.EndsWith("MAC(000000000000)")}
$VM | Set-VMFirmware -FirstBootDevice $network
Теперь виртуальная машина загрузится из сети. Впоследствии вам, вероятно, понадобится / вы захотите изменить порядок загрузки обратно на файл, являющийся первым загрузочным устройством. Вы также можете оставить сеть в качестве первого загрузочного устройства.
Обновление 15-3-2017
Предупреждение об опасности
Каждый раз, когда вы повторно создаете образ UEFI-машины, в список прошивки будет добавляться дополнительный файл bootmgfw.efi. Удаление устаревших файлов bootmgfw - непростой процесс; вам нужно будет использовать BCDEDIT в самой виртуальной машине, чтобы очистить их. Руководство о том, как это сделать, можно найти Вот. При использовании этого руководства будьте осторожны, не удаляйте GUID, связанные с загрузочными устройствами EFI.
Как изменить порядок загрузки (сначала файл):
Если вы удалили устаревшие записи прошивки с помощью упомянутого выше руководства, вы можете изменить порядок загрузки обратно на файл, используя следующий код PowerShell:
$VM = Get-VM "VmName"
$file = $VM | Get-VMFirmware |select -ExpandProperty BootOrder | where {$_.FirmwarePath.EndsWith(".efi")}
$VM | Set-VMFirmware -FirstBootDevice $file
Примечание: мне кажется странным, что прошивка для виртуальной машины Gen2, работающая на Windows 2012 R2 и выше, показывает только параметр «файл». Мне интересно: это задумано или это ошибка?
У меня есть виртуальная машина Windows 10, работающая под Windows 8.1 и Windows 10 Hyper-V с включенной безопасной загрузкой, и я могу видеть сетевой адаптер в качестве источника загрузки и могу переместить его в очередь загрузки на обеих машинах, и даже дальше, я действительно может загружаться в мои образы WDS.
Другая альтернатива - перезапуск гостя с консоли, удерживая клавишу Shift (любой UEFI Windows), что дает вам возможность устранения неполадок и параметров загрузки, где вы можете выбрать загрузку из сети.
Но так же, как я это тестировал, я получил тайм-аут загрузки TFTP, который был исправлен настройкой свойств WDS -> TFTP -> Максимальный размер блока: 1024 вместо 0 по умолчанию.