-2

嗨,我是 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”作为主引导。

请帮助我。谢谢。

4

1 回答 1

0

在这两种情况下,当目标开始网络引导时,它最初都会广播 DHCP DISCOVERY 数据包。如果您在网络引导基于 UEFI 的目标时没有看到它们,那么您可能不是真正的网络引导,或者您有一些防火墙问题。

编辑 1. 你有一个 DHCP 和一个 PXE 服务器都提供引导信息?这不好。您可以拥有:

  1. 提供 PXE 参数的 DHCP 服务器
  2. 常规 DHCP 服务器和仅提供 PXE 参数的 proxyDHCP。在此处阅读代理服务器的功能

如果 efi 无法获取 IP,那是因为没有接收到 IP“加上”PXE 参数。

于 2015-02-02T09:44:16.757 回答