Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Need some help NFS booting a mounted Ubuntu 16.04 mini.iso (both UEFI and BIOS)
2016-05-23, 21:43
Post: #1
Need some help NFS booting a mounted Ubuntu 16.04 mini.iso (both UEFI and BIOS)
Hey there,

I'm completely new to network booting/iPXE, etc., and I'm having some problems getting a network boot setup working. I'm hoping somebody here can help.

Here's a quick overview of my setup:

1. I have configured a DHCP server to instruct chainloading of either ipxe.efi or undionly.kpxe depending on whether or not the boot client is UEFI or BIOS

2. The DHCP server sends the client to a TFTP server running on a QNAP TurboNAS to serve up the correct file

3. The same QNAP TurboNAS has the mini.iso for Ubuntu 16.04 mounted with read-only guest permissions and available via NFS

4. I have built iPXE w/ DOWNLOAD_PROTO_NFS enabled

Up to here is where things seem to fall apart; I Ctrl+B in to the command line to start playing with stuff but I can't seem to get the kernel to load.

I know that NFS is working, because I can get to files such as the initrd without issue:

Code:
dhcp
initrd nfs://guest@<server ip>/Ubuntu1604Mini/initrd.gz

Works just fine. But when I try to get the kernel to load, I get Exec format error. From cursory Googling I'm going to assume that the kernel image doesn't have the EFI stub compiled properly but I'm not totally sure. I have tried several different commands:

Code:
kernel nfs://guest@<server ip>/Ubuntu1604Mini/linux #doesn't work
kernel nfs://guest@<server ip>/Ubuntu1604Mini/linux initrd=initrd.gz #doesn't work
kernel nfs://guest@<server ip>/Ubuntu1604Mini/linux root=/dev/nfs nfsroot=guest@<server ip>:/Ubuntu1604Mini initrd=initrd.gz #doesn't work
kernel nfs://guest@<server ip>/Ubuntu1604Mini/linux root=/dev/nfs netboot=nfs nfsroot=guest@<server ip>:/Ubuntu1604Mini initrd=initrd.gz #doesn't work

Is this an EFI issue, or am I just missing something monumentally obvious? Any help on this would be incredibly appreciated.
Find all posts by this user
Quote this message in a reply
2016-11-02, 11:50
Post: #2
RE: Need some help NFS booting a mounted Ubuntu 16.04 mini.iso (both UEFI and BIOS)
Have you verified that the same setup works with legacy BIOS? Is this an UEFI-specific issue?

Can you show the entire script with all the commands involved for booting this menu entry? Alternatively use DEBUG=script and "imgstat" right before booting to show us a screenshot with the issue.
Visit this user's website Find all posts by this user
Quote this message in a reply
2016-11-02, 15:31 (This post was last modified: 2016-11-02 15:38 by MultimediaMan.)
Post: #3
RE: Need some help NFS booting a mounted Ubuntu 16.04 mini.iso (both UEFI and BIOS)
"Doesn't work" doesn't work: what is displayed? Screen Grabs are very useful. I built and run a large NFS boot farm on UEFI hardware.

You can get some useful debugging info without resorting to a full debug build by changing some of your scripts:

from this:

Code:
initrd nfs://guest@<server ip>/Ubuntu1604Mini/initrd.gz
kernel nfs://guest@<server ip>/Ubuntu1604Mini/linux

to this:

Code:
initrd nfs://guest@<server ip>/Ubuntu1604Mini/initrd.gz ||
kernel nfs://guest@<server ip>/Ubuntu1604Mini/linux ||

Also which version of Ubuntu are you attempting to run? i386, x86_64?

"Thus far, you have been adrift within the sheltered harbor of my patience..."
Find all posts by this user
Quote this message in a reply
2016-11-02, 18:06 (This post was last modified: 2016-11-02 18:19 by maggreg.)
Post: #4
RE: Need some help NFS booting a mounted Ubuntu 16.04 mini.iso (both UEFI and BIOS)
This config working for me (desktop live), efi and legacy, 16.04 and 16.10:

Code:
:ubuntu
set args1 vga=791 boot=casper toram
set args2 netboot=nfs nfsroot=${next-server}:/data/tftpboot/ubuntu root=/dev/nfs
kernel nfs://${next-server}/data/tftpboot/ubuntu/casper/vmlinuz.efi ||
initrd nfs://${next-server}/data/tftpboot/ubuntu/casper/initrd.lz ||
imgargs vmlinuz.efi initrd=initrd.lz ${args1} ${args2}
imgstat
boot || read void
goto start

And mini:
Code:
:ubuntumini
kernel nfs://${next-server}/data/tftpboot/ubuntumini/linux ||
initrd nfs://${next-server}/data/tftpboot/ubuntumini/initrd.gz ||
imgargs linux initrd=initrd.gz vga=791 toram
imgstat
boot || read void
goto start

My "exports" for this share:
Code:
"/data/tftpboot" *(insecure,insecure_locks,root_squash,anongid=99,anonuid=99,no_subtree_check,rw,​async)

pzdr
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 2 Guest(s)