I’ve followed the DHCP and PXE server doc but am thus far unable to boot via PXE automatically.
I instead have to configure the PXE firmware manually during boot.
gPXE> dhcp net0
DHCP (net0 00:11:22:33:44:55)... ok
gPXE> config
ip...............192.168.1.86
netmask..........255.255.255.0
gateway..........192.168.1.1
dns..............192.168.1.1
domain............example.lan
next-server.......192.168.1.1
keep-san..........<not specified>
hostname..........<not specified>
filename..........<not specified>
root-path.........<not specified>
username..........<not specified>
pasword...........<not specified>
priority..........<not specified>
mac...............00:11:22:33:44:55
initiator-iqn.....<not specified>
reverse-username..<not specified>
reverse-password..<not specified>
If I specify filename
to pxelinux.0
, then call autoboot
I am presented with the PXE menu.
I’ve tried chowning /var/lib/tftpboot
to be owned by nobody (the user currently running the dnsmasq process), watching the network traffic between the Nethserver and the PXE boot client during a failed auto attempt (no manual intervention) and during a successful manual attempt, many different variations of /etc/dnsmasq.conf
, and swapping out the nics on my test VM (the PXE client in this case).
It’s now 02:00 where I am and I’m giving up for the night.
If any of you have comments / suggestions, any and all help would be greatly appreciated.
Maybe @filippo_carletti could help you on this
No clue form me.
@Micheal_Quinn could you show the output of
ls -l /var/lib/tftpboot
Here is the output of ls -l /var/lib/tftpboot/
total 188
drwxr-xr-x. 2 nobody root 4096 Aug 8 01:09 CentOS
-rw-r--r--. 1 nobody root 20832 Aug 8 00:48 chain.c32
-rw-r--r--. 1 nobody root 35676 Aug 8 00:48 mboot.c32
-rw-r--r--. 1 nobody root 26268 Aug 8 00:48 memdisk
-rw-r--r--. 1 nobody root 61796 Aug 8 00:48 menu.c32
-rw-r--r--. 1 nobody root 26759 Aug 8 00:48 pxelinux.0
drwxr-xr-x. 2 nobody root 4096 Aug 8 01:09 pxelinux.cfg
Contents of /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
prompt 0
timeout 300
MENU TITLE PXE Menu
LABEL CentOS
kernel CentOS/vmlinuz
append initrd=CentOS/initrd.img
My setup is similar, files are owned by root and readable from all.
I can’t see errors in your setup.
I’d leave files owned by root, for security, but it can’t make any difference regarding functionality.
Maybe we’re looking at the wrong place. There’s a section about tftp in /etc/dnsmasq.conf.
enable-tftp
dhcp-boot=pxelinux.0,xxx.nethesis.it,192.168.x.252
tftp-root=/var/lib/tftpboot
dhcp-option=66,"192.168.x.252"
The section in /etc/dnsmasq.conf
about tftp is similar to yours except the dhcp-boot
setting. However, according to the man page for dnsmasq, only the filename is required for a server providing a tftp service.
If dnsmasq is providing a TFTP service (see --enable-tftp ) then only the filename is required here to enable network booting.
My /etc/dnsmasq.conf
tftp section
enable-tftp
dhcp-boot=pxelinux.0
tftp-root=/var/lib/tftpboot
dhcp-option=66,"192.168.x.1"
Although, I think I tracked down the issue…or at least at what part in my network the issue is located.
I attempted the PXE boot from a physical device on my network (instead of a VM) and it worked as expected. No manual configuration of the PXE interface needed. So my issue appears to be somewhere in my oVirt implementation.
Thanks for taking time to offer up advice!! I will be sure to update this thread when/if I find a solution.
1 Like