TFTP Boot on fresh install of Nethserver 6.6

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