今天下午一直在尝试测试 Hyper-v 2016,但我无法让我的 R630 从我使用以下说明配置的 USB 启动https://technet.microsoft.com/library/ee731893(ws.10).aspx
我在 Hyper-v 2012 R2 上使用了完全相同的指南,没有任何问题。
有人对此有任何运气吗?
今天下午一直在尝试测试 Hyper-v 2016,但我无法让我的 R630 从我使用以下说明配置的 USB 启动https://technet.microsoft.com/library/ee731893(ws.10).aspx
我在 Hyper-v 2012 R2 上使用了完全相同的指南,没有任何问题。
有人对此有任何运气吗?
我找到了有关将 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
它对您来说是便宜且小尺寸的选择。您可以在其上部署任何操作系统。所以也是一种选择。
最近遇到了这个问题,经过几天的调试,我发现了这个问题并修复了它。
请打鼓:
安装 Hyper-V Server 2016 后,使用离线工具(例如,Windows PE)挂载新安装的 SYSTEM 配置单元,并将 DWORD ControlSet001\Control\BootDriverFlags 从 0x04 更改为 0x1c。(您可能还应该更改 ControlSet002 版本,并且可以将更改烘焙到 install.wim 中,以避免在每次安装后都必须这样做。)
(因为当然需要一周的时间和内核调试器才能弄清楚它只需要在一个晦涩且完全未记录的位域中进行两位更改。)
这就是为什么。
Windows 引导加载程序使用内置 UEFI 例程来查找 Windows 安装,并在调用 ExitBootServices 之前将内核和引导驱动程序加载到 RAM 中。一旦完成此操作并将控制权传递给内核,内核就无法访问引导卷,除非适当的驱动程序已经存在于 RAM 中。
不过,这里是关键:winload.efi 不够复杂,无法枚举硬件并确定实际需要哪些驱动程序。在旧版本中,它只会加载设置为 Boot Start 的内容。但是,加载无关的驱动程序会导致性能损失,并且随着 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 服务器推荐的引导至 VHD 技巧。但是,它们也改变了 BootDriverFlags 值的含义。USB 3 设备被赋予了一个单独的位,特别是 SD 卡被赋予了另一个位。
在 2016 版本中,这意味着 0x04 的值现在只能从非 SD 卡的 USB2 磁盘启动。除了 Hyper-V Server 之外的所有版本的 Server 2016 都附带默认值 0x1c,它启用 USB2、USB3 和 SD 卡引导;但是,0x04 的值仍然在 Hyper-V 服务器中设置,因为它是在 2008R2 版本的映像构建过程中作为覆盖添加的。但是,此值现在将其删除,而不是添加功能。
这解释了为什么以前针对此问题的一些解决方案建议禁用 USB3 并从 USB 记忆棒而不是 SD 卡引导:这将强制引导设备的类别仍然包含在现在更有限的“USB " BootDriverFlags 中的位。
我按照 Hyper-V Server 2016 的字母说明(唯一的例外是驱动器字母),它适用于旧的 Dell PowerEdge T710 服务器。它现在在内部 USB 端口上运行。然而,戴尔设备可以告诉系统内部 USB 应该显示为硬盘。这可能就是区别。但我可以说是的,您可以推断 2008 R2 的说明并将其应用到 2016 HyperV 服务器就好了。