嗨,我是 BIOS 和 UEFI 固件的新手。我正在使用 PXE 下载 UEFI 和 BIOS 的启动映像。 我发现当我使用 BIOS 进行网络启动时,它会广播 UDP 数据包,而我的 PXE 服务器可以处理它。但是如果我使用 UEFI 进行网络启动,则使用相同的配置,目标系统不会广播 UDP 数据包。
我在 VMware ESX 5.5 上创建了一个目标系统(裸机系统)。
我正在使用wireshark进行调试。我可以看到,如果基于 EFI 的引导目标没有获得 IP 地址。即使我的 DHCP 服务器广播 DHCPOFFER 数据包,目标也会不断发送 DHCPDISCOVER 数据包。我的意思是在某个时间点目标必须发送 DHCPREQUEST 数据包。但是如果我通过 BIOS 启动,同样的事情也可以正常工作。
如果我在 dhcp.conf 中添加引导文件名和下一个地址(DHCP 服务器在 Linux 中),上述问题将得到解决。但根据我的要求,我不能硬编码 nextAddress 和 bootfile 名称,它将在 PXE 服务器中即时添加。
编辑 2: 所以在我的情况下,我在 PXE 端添加所有必需的参数,例如下一个服务器地址、启动文件名等。但如果我这样做,我不会从客户端(基于 UEFI 的客户端)得到回复(DHCPREQUEST)。但是如果在 DHCP 服务器上配置相同的参数,它就可以正常工作。
如果 BIOS 在同一环境中,我已经在 PXE 服务器中配置了所有参数,并且我收到了来自客户端的回复 (DHCPREQUEST)。
只是一个指针,我们是否需要在 UEFI 客户端启用某些东西来监听 PXE 参数(选项)。就我而言,我已将“EFI NETWORK”作为主引导。
请帮助我。谢谢。