重新映像Hyper V Gen 2 / UEFI VM

所以我们终于咬紧牙关,开始在桌面上使用UEFI。 它适用于我们的Hyper V图像 – 我们可以整天创build第2代虚拟机。 这是真的,直到我们需要重新映像。 如何将现有操作系统的Gen 2 VM设置为从PXE启动?

对于我的生活,我不能改变启动顺序,让我从networking启动。 在系统设置下的固件界面中,它只列出了Windows启动pipe理器。 每次我们想要尝试一个新的图像变化时,必须删除和重新创build虚拟机是痛苦和缓慢的。我们如何解决这个问题? 我猜VM中有一些隐藏的标志,我需要使用Powershell进行编辑,但文档缺乏。

我有和Tim Brigham一样的问题/问题。 你(格里高利)有select,并不意味着我们有他们。 以下是我在VM中的启动选项的屏幕截图: 缺少启动选项 按住Shift不能按你所描述的那样工作。 这似乎工作。

如何更改引导顺序(NIC先):
我已经做了一些研究,似乎只能使用PowerShell更改在Windows Server 2012 R2或更高版本上运行的Generation 2 VM的引导顺序。 我使用下面的PowerShell命令来更改启动顺序:

$VM = Get-VM "VmName" $network = $VM | Get-VMFirmware |select -ExpandProperty BootOrder | where {$_.FirmwarePath.EndsWith("MAC(000000000000)")} $VM | Set-VMFirmware -FirstBootDevice $network 

现在VM将从networking启动。 之后,您可能需要/想要将引导顺序更改回到作为第一个引导设备的文件。 您也可以select将networking作为第一个引导设备。

更新15-3-2017
单向警告
每次重新映像UEFI机器时,都会在固件列表中添加一个额外的“bootmgfw.efi”。 删除过时的bootmgfw文件不是一个简单的过程; 您需要在VM中使用BCDEDIT来清理它们。 关于如何做到这一点的指导可以在这里find。 使用本指南时,请注意不要移除链接到EFI引导设备的GUID

如何更改启动顺序(File first):
如果使用上述指南删除了过时的固件条目,则可以使用以下PowerShell代码将引导顺序更改回第一个文件:

 $VM = Get-VM "VmName" $file = $VM | Get-VMFirmware |select -ExpandProperty BootOrder | where {$_.FirmwarePath.EndsWith(".efi")} $VM | Set-VMFirmware -FirstBootDevice $file 

注意:我发现奇怪的是,在Windows 2012 R2上运行的Gen2虚拟机的固件只显示“文件”选项。 我想知道:这是由devise还是一个错误?

我已经在Windows 8.1和Windows 10 Hyper-V下运行了Windows 10虚拟机,并启用了安全启动function,我可以看到networking适配器作为启动源,并且可以在两台计算机上将其移动到引导队列中,甚至更进一步说,实际上可以启动到我的WDS图像。

虚拟机设置

PXE引导

另一种select – 按住Shift键(任何UEFI Windows)从控制台重新启动guest虚拟机,向您展示疑难解答和启动选项,您可以从中select从networking启动。

使用设备进行引导

EFI网络启动

但正如我testing这个,我已经收到TFTP下载超时,通过调整WDS属性 – > TFTP – >最大块大小:1024而不是默认0修复。