Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 May 2024 18:23:01 +0200 (CEST)
From:      Chris Moerz <freebsd@ny-central.org>
To:        FreeBSD Virtualization Mailing List <freebsd-virtualization@freebsd.org>
Subject:   PXE boot with bhyve
Message-ID:  <b916cf77-5f5d-e9b7-ba86-d4af7b9e4fb4@ny-central.com>

next in thread | raw e-mail | index | archive | help
Hi everyone,

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:

- 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:/nfspath/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:

  >>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

- 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
chris



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b916cf77-5f5d-e9b7-ba86-d4af7b9e4fb4>