尝试从USB运行Hyper-v 2016


10

一直在尝试在此下午测试Hyper-v 2016,但是我无法使R630从我使用以下说明配置的USB引导https://technet.microsoft.com/library/ee731893(ws.10).aspx

我在Hyper-v 2012 R2上使用了完全相同的指南,没有任何问题。

有人有运气吗?


1
Windows Server 2016不是Windows Server 2008 R2,Windows Server 2012或Windows Server 2012 R2。是什么让您认为这应该/会起作用?我找不到任何MS文档来表明这是可能的。
joeqwerty

3
由于Microsoft确实在更新有关系统本身所有问题的文档方面存在延迟,因此很难使所有在线文档保持最新状态,因为这将花费一些时间..没有理由为什么它不会像那......
米哈尔

Answers:


8

我找到了有关将Windows Server 2016 TP3部署到SD卡上的信息。

https://www.danielstechblog.info/how-to-deploy-windows-server-2016-tp3-onto-an-sd-card/

本主题描述了在SD卡上部署Windows Server,但它是TP3。我想您可以使用发行版执行相同的操作。

另外,您可以考虑SATA DOM。

https://www.supermicro.com/products/nfo/SATADOM.cfm

它是您的便宜选择和小尺寸选择。您可以在上面部署任何操作系统。所以这也是一个选择。


3

我最近遇到了这个问题,经过几天的调试,我发现了这个问题并进行了修复。

请打鼓:

安装Hyper-V Server 2016之后,使用脱机工具(例如Windows PE)安装新安装的SYSTEM配置单元,并将DWORD ControlSet001 \ Control \ BootDriverFlags从0x04更改为0x1c。(您也应该适当地更改ControlSet002版本,并且可以将所做的更改烘烤到install.wim中,以避免每次安装后都必须这样做。)

(因为当然要花一周的时间,而内核调试器要弄清楚,只需要对一个晦涩且完全未记录的位域进行两位更改即可。)

这就是为什么。

Windows引导加载程序使用内置的UEFI例程查找Windows安装,并在调用ExitBootServices之前将内核和引导驱动程序加载到RAM中。完成此操作并将控制权传递给内核后,除非RAM中已经存在适当的驱动程序,否则内核将无法访问引导卷。

不过,这里有一个关键点:winload.efi不够复杂,无法枚举硬件并确定实际需要哪些驱动程序。在旧版本中,它只会加载设置为“启动启动”的内容。但是,加载无关的驱动程序会导致性能下降,并且由于Windows开始支持更多类的启动设备,因此需要一个更好的系统。

在各个驱动程序上输入BootFlags值,并在系统范围内输入BootDriverFlags值。如果(BootFlags&BootDriverFlags)!= 0,即使未将其设置为Boot Start,也会加载驱动程序。值中的每个位都应对应于不同类型的硬件,因此BootDriverFlags值设置可以从中引导哪种类型的硬件。

引入此机制后,第3位被指定用于USB引导设备,但标准Windows不支持从USB设备引导。Hyper-V Server 2008 R2版本通过将该值设置为0x04,添加了对从USB引导的特定支持,此后在每个发行的Hyper-V Server版本中都设置了该值。

从那时起,为了支持Windows To Go功能而进行的常规改进意味着您不必使用USB设备上安装的以前版本的Hyper-V Server推荐的启动至VHD技巧。但是,它们也会更改BootDriverFlags值的含义。USB 3设备已单独分配了一点,特别是SD卡已另外分配了一点。

在2016版本中,这意味着0x04值现在仅允许从非SD卡的USB2磁盘引导。除Hyper-V Server以外,Server 2016的所有版本均随附默认值0x1c,该默认值可启用USB2,USB3和SD卡启动;但是,仍在Hyper-V Server中设置了0x04的值,因为它是在2008R2版本的映像生成过程中作为替代添加的。不过,此值现在不添加功能,而是将其删除。

这就解释了为什么以前针对该问题的一些解决方案建议禁用USB3并从USB记忆棒而不是SD卡进行引导:这将迫使引导设备的类别仍然属于“ USB”的现在更为有限的定义“在BootDriverFlags中。


标志值及其含义的列表可以在这里找到:docs.microsoft.com/en-us/windows-hardware/drivers/install/...
RJ卡思伯森

@RJCuthbertson非常好!
Reid Rankin

1

我遵循了Hyper-V Server 2016字母指示(唯一的例外是驱动器号)的指示,它对于旧的Dell PowerEdge T710服务器非常适用。它现在在内部USB端口上运行。但是,Dell部门可以告诉系统内部USB应该显示为硬盘。那可能就是不同了。但是我可以说是的,您可以推断2008 R2的说明并将其正确地应用于2016 HyperV Server。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.