![使用 Windows Server 和 Tiny PXE 服务器设置 PXE](https://linux22.com/image/781087/%E4%BD%BF%E7%94%A8%20Windows%20Server%20%E5%92%8C%20Tiny%20PXE%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E7%BD%AE%20PXE.png)
我正在尝试设置一个小型 PXE/可启动操作系统桌面进行测试。我想通过网络启动操作系统。我使用的是内置 Windows Server iSCSI 目标和 Tiny PXE 服务器。PXE 部分似乎工作正常。我一路启动 SAN,然后 Windows 开始启动。我注意到,一旦 Windows 开始启动,iSCSI 就会失去与 VM 或桌面的连接(我尝试了这两种方式)。我启用了“keep-san=1”设置,这有助于它在 PXE 过程中保持连接,但在 Windows 启动后无济于事。任何关于如何设置 PXE/网络启动到台式电脑或 VM 的建议都将非常棒。我到处搜索,但找不到任何有用的信息来描述这个问题。
更新/摘要:我的目标是通过网络从我的 DHCP 服务器启动映像。我目前正在尝试使用 VHDX 文件的 Microsoft 内置 iSCSI 目标。我还使用 Tiny PXE Server 提供 DHCPd 代理并协助 TFTP 执行 PXE.ipxe 文件。问题是,当我执行 PXE 启动 Windows 或 Linux(我尝试过这两个操作系统)时,它们会连接,然后在启动过程中几秒钟后断开与 iSCSI 的连接。我尝试了其他 iSCSI 目标,结果相同。我不在乎我可以使用什么免费产品,但我只想通过 PXE 启动映像,这样我就可以轻松使用没有 HDD 的不同操作系统。所以我想你可以称之为无盘或网络启动。任何建议都会有所帮助,或者如果您需要更多信息,请告诉我。
答案1
- 您无法使用 iSCSI 轻松启动 Windows 桌面操作系统,这是 Windows Server 在此场景中唯一受官方支持的功能。
https://learn.microsoft.com/en-us/windows-server/storage/iscsi/iscsi-boot-overview#BKMK_SOFT
适用于:Windows Server 2016
亚洲的大多数网吧都使用了许多黑客技术,但没有一种是可靠的,或与 Windows 版本无关,请参见下文。
- 无论如何,实际的 iSCSI 目标都应该能够工作,微软坚持使用 Windows 内置 iSCSI 目标,但没有任何实际原因。你看,我们在过去测试了 LIO、StarWind 甚至古老的 IET,以确认它们工作正常。iSCSI 启动器决定了一切的成败。Windows 存储堆栈在网络堆栈之前启动,因此对 Windows iSCSI 启动器应用了一些非常特殊的依赖关系,迫使它支持 iSCSI 启动。这就是人们为解决问题所做的事情(网络与存储堆栈的启动顺序,将 pagefile.sys 放在虚拟设备上等等)。
https://github.com/ipxe/ipxe/discussions/324
- ServerFault 实际上并不是解决桌面操作系统相关问题的地方,而是专注于桌面的 SuperUser。仅供参考。
https://meta.stackexchange.com/questions/28217/what-questions-belong-on-super-user-vs-server-fault
答案2
keep-san = 1 对现代 iPXE 确实没有影响。连接应该断开然后重新连接,因为 iPXE 需要断开连接,而 Windows 应该接管,但这需要更改网络堆栈,从而断开连接。
您所声称的问题是由 iSCSI 和 iBFT 的设计引起的。
一旦操作系统加载了自己的网络堆栈,它就应该重新连接到 iSCSI,如果失败,您可以使用例如 wireshark 来调查原因。