PXE Booting Problems With Fedora 37

I’ve been using PXE boot with Fedora for a number of years. Since it had been so well behaved, I chose to move the tftp server, things went downhill from there.

I’m using the setup from here Installation server, PXE/netboot I’m using the UEFI branch for grub.cfg setup. During F37 beta, I tried to PXE boot that beta os but that failed miserably. With the GA release I wanted to give it another try. That is enough context setting lets get to the issues.

(pcap files and analysis follows which bulks this question up, sorry about that.)

The most visible evidence of the problem is the following error which stops the PXE boot process:

NBP files Downloaded successfully
failed to find fs: unsupported
Fetching netboot image

I’ve run a tcpdump of the process and it follows the general flow of earlier working pcap files.

14:39:28.856357 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 1c:69:7a:04:3e:c3, length 253
14:39:28.856358 IP 192.168.0.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
14:39:31.519725 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 1c:69:7a:04:3e:c3, length 347
14:39:31.519798 IP 192.168.0.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 304
14:39:35.028532 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 1c:69:7a:04:3e:c3, length 359
14:39:35.028534 IP 192.168.0.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 304
14:39:35.029422 IP 192.168.1.119.1121 > 192.168.0.2.69: TFTP, length 46, RRQ "uefi/shimx64.efi" octet tsize 0 blksize 1468
14:39:35.060639 IP 192.168.1.119.1122 > 192.168.0.2.69: TFTP, length 38, RRQ "uefi/shimx64.efi" octet blksize 1468
14:39:35.347380 IP 192.168.1.119.1123 > 192.168.0.2.69: TFTP, length 37, RRQ "uefi/grubx64.efi" octet blksize 512
14:39:40.399266 IP 192.168.1.119.25300 > 192.168.0.2.69: TFTP, length 64, RRQ "uefi/grub.cfg-01-1c-69-7a-04-3e-c3" octet blksize 1024 tsize 0
...
14:39:40.414410 IP 192.168.1.119.25309 > 192.168.0.2.69: TFTP, length 43, RRQ "uefi/grub.cfg" octet blksize 1024 tsize 0
14:39:40.417909 IP 192.168.1.119.25310 > 192.168.0.2.69: TFTP, length 43, RRQ "uefi/grub.cfg" octet blksize 1024 tsize 0
NBP files Downloaded successfully
failed to find fs: unsupported
Fetching netboot image

Other working packet captures have that last line then they move onto:

17:21:26.443491 IP 192.168.1.33.25310 > 192.168.0.2.69: TFTP, length 64, RRQ "/EFI/fedora/x86_64-efi/command.lst" octet blksize 1024 tsize 0
17:21:26.444610 IP 192.168.1.33.25311 > 192.168.0.2.69: TFTP, length 59, RRQ "/EFI/fedora/x86_64-efi/fs.lst" octet blksize 1024 tsize 0
17:21:26.445664 IP 192.168.1.33.25312 > 192.168.0.2.69: TFTP, length 63, RRQ "/EFI/fedora/x86_64-efi/crypto.lst" octet blksize 1024 tsize 0
17:21:26.446688 IP 192.168.1.33.25313 > 192.168.0.2.69: TFTP, length 65, RRQ "/EFI/fedora/x86_64-efi/terminal.lst" octet blksize 1024 tsize 0
17:21:26.447688 IP 192.168.1.33.25314 > 192.168.0.2.69: TFTP, length 43, RRQ "uefi/grub.cfg" octet blksize 1024 tsize 0
17:21:28.985927 IP 192.168.1.33.25315 > 192.168.0.2.69: TFTP, length 41, RRQ "f36/vmlinuz" octet blksize 1024 tsize 0
17:21:31.724996 IP 192.168.1.33.25316 > 192.168.0.2.69: TFTP, length 44, RRQ "f36/initrd.img" octet blksize 1024 tsize 0

I think the files like command.lst, fs.lst, cyrpto.lst, etc, generally don’t exist but are checked for anyway.

Does the failed to find fs: unsupported error seem to suggest some issue stepping through the *.lst files?

If I

strings grubx64.efi | grep fs.lst

it does spit out the following:

%s/x86_64-efi/fs.lst

I’m unable to find the fs.list file anywhere on the tftp server, further, I don’t even find tne suggested directory:

fd -t d x86_64-efi

the command returns nothing.

I again apologize for the long message, does anyone have a suggestion I could try? Thanks!

Just a bit more information. I’ve tried to use my previous setup and Fedora 36 also fails to PXE boot now, giving similar errors. More research suggests that it seems to be a GRUB2-PXE conflict issue rather than a Boot server setup issue.

The link to the PXE setup page above goes to the Fedora 36 setup, there is a note there which says there is a new version available and provides a link that just goes to the home page for the Fedora 37 Documentation. I’ve not been able to find a similar PXE/NetBoot install page for Fedora 37, which further suggests there may be gremlins in the machine.

I’d love a simple “I’ve PXE booted F37” or “I’ve tried to PXE boot F37 without success” reply for anyone who may have tried.

Thanks!

I have the same problem.
In Fedora 36 it worked. After some update it didn’t work anymore. Unfortunately, I can no longer trace which update is responsible for this. I tried to update everything with Fedora 37, but the same error came up.

Ok I tried it now without UEFI but with the legacy BIOS method. This works perfectly. But this is not a way for me. When a new Fedora version is released. I initiate a new installation with Ansible for 20 machines. For that I need efibootmgr to specify the network card with boot next command. But efibootmgr is of course not present in a BIOS installation.

That BIOS PXE works is helpful to know, but agree if you need the clever efibootmgr, you need to start it from a UEFI boot.

Did you ever find any more information on this, I’ve a working PXE boot for F35 but wasn’t able to set one up for F37 yet.

1 Like

Yes. According to this outdated information https://docs.fedoraproject.org/en-US/fedora/f34/install-guide/advanced/Network_based_Installations/ it worked for me. I skipped all the steps that are for BIOS clients because I only work with UEFI. As PXE server I use a Fedora 37 server. However, my DHCP server is an extra machine with RockyLinux.

1 Like

Thanks for the update, I’ll give that a try.

1 Like