I'm setting up a machine to load a Debian intallation with PXEBoot, following the guide on the Debian Wiki. I have the boot image sitting on a server, pxe.example.com
, at /var/lib/tftpboot/debian-jessie/pxelinux.0
. I can download that file manually from any machine on my network when I use tftp pxe.example.com
, but I'm still getting this error when I boot up the client machine:
PXE-T01: File not found
PXE-E3B: TFTP Error - File Not found
PXE-M0F: Exiting PXE ROM.
The problem is that even though I have this in my /etc/dchpd.conf
on my DHCP server:
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;
}
}
and have run /etc/rc.d/dhcpd restart
after every edit, and the client is getting an IP address from the server, it is still trying to download the wrong filename from pxe
! The PXE server's daemon.log
shows:
in.tftpd: RRQ from <client's ip> filename debian-bios/pxelinux.0
in.tftpd: sending NAK (1, File not found) to <client's ip>
I tried the obvious hack-around, to just change the name of debian-jessie
to debian-bios
but that still ends up failing because the directory structure doesn't match. What I cannot figure out is where it is getting the idea that the directory is called debian-bios
in the first place! This is an update to an older system, but the word "bios" doesn't even appear anywhere in in my dhcpd.conf
, so where could that filename be coming from?
Like I said, I restarted dhcpd
, and I can see that it's giving an IP address to the client. The whole handshake is happening and working correctly, but the filename option it's getting is somehow wrong anyway.
I must be missing something. Does anyone know where else it might be retrieving that option, or any other reason why it's not doing what I expect?
Thanks!