我正在设置一台机器,使用 PXEBoot 加载 Debian 安装,按照Debian 维基。我的启动映像位于 的服务器上。pxe.example.com
当/var/lib/tftpboot/debian-jessie/pxelinux.0
我使用 时,我可以从我网络上的任何机器手动下载该文件tftp pxe.example.com
,但当我启动客户端机器时,仍然会出现此错误:
PXE-T01: File not found
PXE-E3B: TFTP Error - File Not found
PXE-M0F: Exiting PXE ROM.
问题是,即使我/etc/dchpd.conf
的 DHCP 服务器上有这个:
group {
next-server pxe.example.com;
option option-209 "/debian-jessie/pxelinux.cfg/default";
filename "/debian-jessie/pxelinux.0";
host theclient {
hardware ethernet my:ma:ca:dd:re:ss;
fixed-address theclient.example.com;
}
}
每次编辑后都会运行/etc/rc.d/dhcpd restart
,客户端从服务器获取 IP 地址,但它仍然试图从 下载错误的文件名pxe
!PXE 服务器daemon.log
显示:
in.tftpd: RRQ from <client's ip> filename debian-bios/pxelinux.0
in.tftpd: sending NAK (1, File not found) to <client's ip>
我尝试了显而易见的解决方法,只是将 的名称更改debian-jessie
为debian-bios
,但最终还是失败了,因为目录结构不匹配。我无法弄清楚的是,它从哪里得到了目录被调用的想法debian-bios
!这是对旧系统的更新,但“bios”这个词甚至没有出现在我的 的任何地方dhcpd.conf
,那么这个文件名是从哪里来的呢?
就像我说的,我重新启动了dhcpd
,然后我可以看到它正在向客户端提供一个 IP 地址。整个握手过程都在进行并且正常工作,但它获取的文件名选项无论如何都是错误的。
我肯定漏掉了什么。有谁知道它还可能在哪里检索该选项,或者它没有按照我的预期执行的其他原因是什么?
谢谢!
答案1
但是“bios”这个词甚至没有出现在我的 dhcpd.conf 中的任何地方,那么这个文件名是从哪里来的呢?
它肯定来自您网络中启用了 PXE 的“第二个” DHCP 服务器......
或者
/etc/dchpd.conf 不是真正驱动 DHCP 守护进程的配置文件。
在这些情况下,Wireshark 流量捕获确实可以提供很大帮助。