I am trying to set up network booting of the Ubuntu mini.iso
via iPXE and NFS. I'm currently stepping through everything via the iPXE command line instead of a script. I made sure to build iPXE w/ NFS enabled, and that seems to be working just fine because I can get to the initrd.gz
just fine. But I cannot figure out how to tell iPXE what the kernel is; I assumed that the linux
file would be the kernel, but when I try to tell iPXE to use that file it throws Exec format error (http://ipxe.org/2e008081)
.
To go in to more detail, here is how the system is set up:
- mini.iso is mounted on a QNAP TurboNAS as a shared folder, with guest access enabled over NFS
- New server PXE boots, chain-loads iPXE via TFTP
- I
<Ctrl-B>
in to the iPXE command line initrd nfs://guest@<nfs ip address>/Ubuntu1604Mini/initrd.gz
works just finekernel nfs://guest@<nfs ip address>/Ubuntu1604Mini/linux
freaks out with above error
I'm having a hard time Googling this question because everything else seems to assume a non net-boot image so all of those instructions assume the presence of the casper
directory and casper/vmlinuz
but the mini.iso seems to have a very different structure.
Any help with this would be greatly appreciated! Thanks!
Edit
If it's relevant, all of the NFS guest access is read-only.
Edit 2:
It seems that this is actually a UEFI issue. I found in the documentation where the mini.iso isn't set up for booting in to UEFI environments. So I have switched to trying to get this to work via the Ubuntu 16.04 Server .ISO and I'm still having issues; from some cursory web searches it appears that the vmlinuz on Ubuntu 16.04 is not compiled with the EFI Stubs. I found the EFI/BOOT/BOOTx64.EFI file, but when I chainload this w/ iPXE it starts trying to find a Netbook image via TFTP so I'm not 100% sure what that's doing or what arguments I can pass it.