I've attempted to boot a diskless guest via PXE. Unfortunately, it's not working for me. Here's what I have done and tested successfully. All involved systems are FreeBSD 14.0-RELEASE:
Here's what I see on guest 3 serial console:
I ran a tcpdump on the bridge and investigated the dump with wireshark.
I can see that the DHCP packet looks good and contains all relevant options, including the root path to the NFS server.
Now, I've established that everything works up to the point when pxeboot should take over and load the kernel. However, there's never any NFS
access.
How do I troubleshoot this? I've got the feeling that the pxeboot is not really getting launched? The fact that I'm getting IPv4(0.0.0.0... looks like I'm also not getting the relevant network settings into the execution process?
Any suggestion is very much appreciated.
Let me know if you have any questions that may help shed more light into
this.
Thanks
- NFSv3 setup on guest 1 "NFS server"
exports /nfs and all subdirectories with-maproot=0
base.txz, kernel.txz both extracted into /nfs/vmname
duplicated the guest's /boot dir onto /nfs/vmname/boot for testing - TFTP set up via inetd on guest 1 "NFS server"
/tftpboot contains copy of /boot/pxeboot
alternatively, I also recompiled pxeboot without ZFS support - DHCP set up on host, listening on the bridge that all guests are on
announces the relevant BOOTP options
option root-path "xxx.xxx.xxx.xxx:/nfs/vmname"
filename "pxeboot" - Booted a test guest 2 "NFS client"
confirmed NFS mount is working, files can be written onto NFS mount
confirmed TFTP download is working - Booted a diskless guest 3 "Diskless client"
- PXE starts, gets DHCP announcement, downloads "pxeboot" and then fails
Here's what I see on guest 3 serial console:
Code:
>>Start PXE over IPv4.
Station IP address is 10.193.167.3
Server IP address is 10.193.167.2
NBP filename is pxeboot
NBP filesize is 415744 Bytes
Downloading NBP file...
NBP file downloaded successfully.
BdsDxe: failed to load Boot0001 "UEFI PXEv4 (MAC:000000FFFF03)" from
PciRoot(0x0)/Pci(0x4,0x0)/MAC(000000FFFF03,0x1)/IPv4(0.0.0.0,0x0,DHCP,0.0.0.0,0.0.0.0,0.0.0.0):
Not Found
>>Start PXE over IPv6
I ran a tcpdump on the bridge and investigated the dump with wireshark.
I can see that the DHCP packet looks good and contains all relevant options, including the root path to the NFS server.
Now, I've established that everything works up to the point when pxeboot should take over and load the kernel. However, there's never any NFS
access.
How do I troubleshoot this? I've got the feeling that the pxeboot is not really getting launched? The fact that I'm getting IPv4(0.0.0.0... looks like I'm also not getting the relevant network settings into the execution process?
Any suggestion is very much appreciated.
Let me know if you have any questions that may help shed more light into
this.
Thanks