Skip to main content

PXE Booting the Ubuntu Installer

Installer Kernels

Ubuntu maintains installer kernels that are lightweight way to load the Ubuntu installer and then stream packages over the network as needed. The installer kernels are located at:

# or other ubuntu mirrors
# (${version} == xenial, bionic, etc)
# (${arch} == amd64, i386)

# original release directory: 
# ubuntu/dists/${version}/main/installer-${arch}/current/images/netboot/
# updated release directory which contain newer kernels and updates:
# ubuntu/dists/${version}-updates/main/installer-${arch}/current/images/netboot/
# kernel filename: linux
# initrd filename: initrd.gz

In order to load them, you'll need use a boot snippet in iPXE similar to:

set install_params auto=true priority=critical
set mirror
set base_dir ubuntu
set ubuntu_version bionic
set arch amd64
set mirrorcfg mirror/suite=${ubuntu_version}
set dir ${mirror}/${base_dir}/dists/${version}/main/installer-${arch}/current/images/netboot

kernel ${dir}/linux ${install_params} ${mirrorcfg} -- quiet initrd=initrd.gz
initrd ${dir}/initrd.gz

If you want to use a preseed url for automation, you can add this to the kernel line:

set preseedurl

For more examples you can view the configuration for Ubuntu here.

Live Boot

Ubuntu also provides a number of Live Boot ISOs that will boot an OS directly into memory and can be used immediately without doing an install or modifying the hard drive. The Live OS will also include the installer as well. These are great for evaluating other desktops that you might want to try out without doing a full install.

Ubuntu Budgie
Ubuntu Kylin
Ubuntu Mate
Ubuntu Studio