Solution 1:

I worked around this issue in iPXE by following the advice of "Woodrow Shen" over at the Launchpad bug tracker.

Basically I adapted our old entry for ubuntu 16.04.3:

:deployUbuntu-x64-16.04.3
set server_ip 123.123.123.123
set nfs_path /opt/nfs-exports/ubuntu-x64-16.04.3
kernel nfs://${server_ip}${nfs_path}/casper/vmlinuz.efi || read void
initrd nfs://${server_ip}${nfs_path}/casper/initrd.lz || read void
imgargs vmlinuz.efi initrd=initrd.lz root=/dev/nfs boot=casper netboot=nfs nfsroot=${server_ip}:${nfs_path} ip=dhcp splash quiet -- || read void
boot || read void

To look like this for ubuntu 18.04:

:deployUbuntu-x64-18.04
set server_ip 123.123.123.123
set nfs_path /opt/nfs-exports/ubuntu-x64-18.04
kernel nfs://${server_ip}${nfs_path}/casper/vmlinuz || read void
initrd nfs://${server_ip}${nfs_path}/casper/initrd.lz || read void
imgargs vmlinuz initrd=initrd.lz root=/dev/nfs boot=casper netboot=nfs nfsroot=${server_ip}:${nfs_path} ip=dhcp splash quiet toram -- || read void
boot || read void

note the following changes:

  • rename vmlinuz.efi to be vmlinux on lines 4 and 6
  • add the toram option to line 6
  • obviously change the nfs_path to match the location of the new extract ISO

note that as pointed out on Launchpad, this toram option requires additional RAM. In my testing, i needed to ensure my virtual machines had 4GB of RAM allocated

Note that this also works for both our EFI and legacy BIOS systems.

Solution 2:

After the weekend, I found a reported bug describing my exact symptoms (and provides an interactive workaround).

https://bugs.launchpad.net/ubuntu/+source/casper/+bug/1755863

Apparently I'll be waiting on 18.04.1. At least I now know I'm not (entirely) crazy!