Previously, I've set up PXE booting of the Ubuntu LiveCDs by extracting the ISO to an NFS mount and copying vmlinuz.efi and initrd.gz from casper to the tftpboot directory with some iPXE scripting magic.
This worked flawlessly for 16.04, 16.10, and 17.10 (Artful).
With 18.04, I first find that vmlinuz.efi no longer exists in casper, but vmlinuz does. So, I try again with some name changing...
And now it still doesn't complete booting. I get the "emergency mode". Typing in 'journalctl -xb' (as suggested by the emergency mode prompt) and browsing leads to the following:
Unit sys-fs-fuse-connections has begun starting up.
ubuntu systemd[1]: Failed to set up mount unit: Device or resource busy
ubuntu systemd[1]: Failed to set up mount unit: Device or resource busy
sys-kernel-config.mount: Mount process finished, but there is no mount.
sys-kernel-config.mount: Failed with result 'protocol'.
Failed to mount Kernel Configuration File System.
Help!
Added 2018-04-30:
Script code used to extract ISO for PXE mount (TARGET set to image name, e.g. bionic):
set -e
# Look for bionic.iso as the ISO I am going to extract.
TARGET=invalid.iso
[ -f bionic.iso ] && TARGET=bionic
echo TARGET=$TARGET
# Mount the ISO to the /tmp directory
sudo rm -rf /var/nfs/$TARGET/*
sudo rm -rf /tmp/$TARGET
mkdir /tmp/$TARGET
sudo mount -o loop ~/$TARGET.iso /tmp/$TARGET
# Clear up the NFS directory where things will be copied (and copy them)
sudo rm -rf /var/nfs/$TARGET
sudo mkdir /var/nfs/$TARGET
sudo rsync -avH /tmp/$TARGET/ /var/nfs/$TARGET
# I've not had luck with iPXE changing filesystems to find
# vmlinuz, vmlinuz.efi, or initrd.gz... so I copy those files
# specifically to the tftp directory structure so the boot loader
# can load them.
sudo rm -rf /var/lib/tftpboot/$TARGET
sudo mkdir /var/lib/tftpboot/$TARGET
sudo cp /tmp/$TARGET/casper/vmlinuz* /var/lib/tftpboot/$TARGET/.
sudo cp /tmp/$TARGET/casper/initrd.lz /var/lib/tftpboot/$TARGET/.
# Cleanup: unmount the ISO and remove the temp directory
sudo umount /tmp/$TARGET/
sudo rm -rf /tmp/$TARGET/
echo Done.
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:
To look like this for ubuntu 18.04:
note the following changes:
vmlinuz.efi
to bevmlinux
on lines 4 and 6toram
option to line 6nfs_path
to match the location of the new extract ISOnote 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 allocatedNote that this also works for both our EFI and legacy BIOS systems.
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!
update on below - don't use the live iso, use the traditional one which can be PXE booted exactly as I used to do
for ubuntu 14.04 and 16.04, I simply loop-back mounted the full server DVD ISO so it was accessible via a web server, and set up PXE boot in the usual way (copied the kernel and initrd to tftp daemon, DHCP next-server option, pxe menu etc).
we have a kickstart process to fully automate the deployment of nodes.
this simply doesn't work with 18.04, there was no kernel in the install directory, and no install/netboot/ubuntu-installer/amd64 directory! So I tried the kernel and initrd from the casper directory but that's useless too. I grabbed the netinstall DVD iso and used the kernel and initrd from that. It actually fires up the text installer but insists the mirror is missing a file, but the log from my http server isn't giving any 404s!
overall then, I feel the ubuntu 18.04 server ISO is a retrograde step for people wanting to do automated installs.
I also tried adding this to the kickstart
preseed live-installer/net-image string http://myreposerver/ubuntu-18.04-live-server-amd64/casper/filesystem.squashfs
which is somewhat like the thing I had to do to make Ubuntu 14.04 PXE boot automatable