Skip to content

Instantly share code, notes, and snippets.

@jwieringa
Forked from robinsmidsrod/ubuntu_1804.ipxe
Created March 5, 2020 16:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jwieringa/1db303fe3ae80881f13bc9856929d0d6 to your computer and use it in GitHub Desktop.
Save jwieringa/1db303fe3ae80881f13bc9856929d0d6 to your computer and use it in GitHub Desktop.
iPXE script entries for booting Ubuntu 18.04 in different ways
# boot-url points to an nfs URL
# sanboot-url points to an http URL
# ubuntu-version contains 18.04.3
# ubuntu-release contains bionic
:ubuntu
echo Booting Ubuntu from iSCSI for ${initiator-iqn}
set root-path ${base-iscsi}:${hostname}.boot.ubuntu
sanboot ${root-path} || goto failed
goto start
:ubuntu-install-iscsi
echo Starting Ubuntu ${ubuntu-version} ${archl} installer for ${initiator-iqn}
# iBFT table not required for Ubuntu
#sanhook ${base-iscsi}:${hostname}.boot.ubuntu || sleep 1
# The partman-iscsi/initiatorname kernel paramter is saved in
# /etc/iscsi/initiatorname.iscsi during the installation.
# Preseed help: https://help.ubuntu.com/lts/installation-guide/amd64/apbs04.html
set ubuntu-installer-base ubuntu-${ubuntu-version}-server-${archl}
set base-url ubuntu/${ubuntu-installer-base}/
kernel ${base-url}install/netboot/ubuntu-installer/${archl}/linux
initrd ${base-url}install/netboot/ubuntu-installer/${archl}/initrd.gz
imgargs linux auto=true fb=false \
netcfg/get_hostname=${hostname} \
partman-iscsi/initiatorname=${initiator-iqn} \
partman-iscsi/login/username=${username} \
partman-iscsi/login/password=${password} \
partman-iscsi/login/address=${iscsi-server} \
partman-iscsi/login/targets=${base-iqn}:${hostname}.boot.ubuntu \
DEBCONF_DEBUG=5 url=${sanboot-url}ubuntu/${ubuntu-installer-base}.preseed
boot || goto failed
goto start
:ubuntu-install-local
echo Starting Ubuntu ${ubuntu-version} ${archl} local installer for ${initiator-iqn}
set ubuntu-installer-base ubuntu-${ubuntu-version}-server-${archl}
set base-url ubuntu/${ubuntu-installer-base}/
kernel ${base-url}install/netboot/ubuntu-installer/${archl}/linux
initrd ${base-url}install/netboot/ubuntu-installer/${archl}/initrd.gz
imgargs linux auto=true fb=false url=${sanboot-url}ubuntu/${ubuntu-installer-base}.preseed
boot || goto failed
goto start
:ubuntu-install-remote
echo Starting Ubuntu ${ubuntu-version} ${archl} installer for ${initiator-iqn}
set base-url http://no.archive.ubuntu.com/ubuntu/dists/${ubuntu-release}/main/installer-${archl}/current/
kernel ${base-url}images/netboot/ubuntu-installer/${archl}/linux
initrd ${base-url}images/netboot/ubuntu-installer/${archl}/initrd.gz
boot || goto failed
goto start
:ubuntu-live
# See http://manpages.ubuntu.com/manpages/precise/man7/casper.7.html for casper cmdline details
echo Booting Ubuntu Live ${ubuntu-version} ${archl} for ${initiator-iqn}
set ubuntu-installer-base ubuntu-${ubuntu-version}-desktop-${archl}
set base-url ubuntu/${ubuntu-installer-base}
kernel ${base-url}/casper/vmlinuz
initrd ${base-url}/casper/initrd
imgargs vmlinuz boot=casper \
root=/dev/nfs netboot=nfs nfsroot=${nfs-server}:${nfs-root}${base-url} \
locale=en_US.UTF-8 \
keyboard-configuration/layoutcode=no \
mirror/country=NO
boot || goto failed
goto start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment