Some of our older IBM nodes were failing to boot after the image had been deployed. The UEFI PXE boot would fail with this:
UEFI PXE PciRoot (0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/MAC(<MAC>)/IPv4(0.0.0.0,UDP,DHCP,0.0.0.0)
>>Start PXE over IPv4.
Station IP address is <IP>
Server IP address is <IP>
NBP filename is bootx64.efi
NBP filesize is 960472 Bytes
Downloading NBP file...
Succeed to download NBP file.
Fetching Netboot Image
Booting local disk...
/EndEntire
Failed to open \efi\boot\grubx64.efi - Not Found
Failed to load image : Not Found
start_image() returned Not Found, falling back to default loader
Failed to open \efi\boot\grubx64.efi - Not Found
Failed to load image : Not Found
start_image() returned Not Found
start_image() returned Not Found
error: unknown error
error: no such device: /efi/ubuntu/shimx64.efi
error: no such device: /efi/ubuntu/grubx64.efi
error: no such device: /efi/Microsoft/Boot/bootmgfw.efi
Secure boot is disabled, trying chainloader...
error: no such device: /efi/centos/shimx64.efi
error: no such device: /efi/centos/grubx64.efi
error: no such device: /efi/redhat/shimx64.efi
error: no such device: /efi/redhat/grubx64.efi
error: no such device: /efi/rhel/shimx64.efi
error: no such device: /efi/rhel/grubx64.efi
error: no such device: /efi/suse/shim.efi
error: no such device: /efi/suse/grubx64.efi
error: no such device: /efi/ol/shim.efi
error: no such device: /efi/ol/grubx64.efi
error: no such device: /efi/red/grubx64.efi
After looking at what was present in the EFI partition, I applied this hack of a patch on my rack server and it worked:
--- /var/lib/snapd/snap/maas/current/lib/python3.10/site-packages/provisioningserver/templates/uefi/config.local.amd64.template 2024-12-18 10:20:56.000000000 -0500
+++ /var/lib/snapd/snap/maas/fixes/provisioningserver/templates/uefi/config.local.amd64.template 2025-02-11 13:19:13.340617402 -0500
@@ -26,6 +26,8 @@
redhat/grubx64.efi \
rhel/shimx64.efi \
rhel/grubx64.efi \
+ rocky/shimx64.efi \
+ rocky/grubx64.efi \
suse/shim.efi \
suse/grubx64.efi \
ol/shim.efi \
Is there a better way to solve this, or would it be a reasonable patch for the project to apply?