I've been meaning to try this for quite a while. The idea is that you can boot a machine over the network in order to install a new OS (or load a livecd, thin client, or whatever). It requires participation from the NETS folks, but they're happy to help out. Here are my notes:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This process requires that a DHCP template get created for our VLAN.
The network folks need to know the IP of the tftp server and the filename of the executable (in the format $tftproot/path/to/$filename.efi.signed)
On the server end (following this: https://wiki.ubuntu.com/UEFI/PXE-netboot-install),
1) sudo apt-get install tftpd-hpa inetutils-inetd
2) sudo nano /etc/default/tftpd-hpa
append this to the file:
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
3) sudo nano /etc/inetd.conf
append this to the file:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
4) sudo service tftpd-hpa restart
Once the DHCP template is set up and the tftp server configured you can deploy your netboot stuff
At a bare minimum you'll need to
1) Create a $tftproot/grub directory
2) Download the signed grub efi executable to $tftproot/grub:
wget http://archive.ubuntu.com/ubuntu/dists/trusty/main/uefi/grub2-amd64/current/grubnetx64.efi.signed
and put it here: $tftproot/grub/grubnetx64.efi.signed -
Note that, although it can technically go anywhere, it must end up where the DHCP template expects it to be.
It also MUST use the '.signed' file extension. Using plain '.efi' will stop this from working (I think it's a UEFI thing)
** the md5sum of the trusty version and the wily version are identical, so we should abe able to use them interchangeably
3) Download netboot.tar.gz (the following is trusty with a 4.x kernel):
wget http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-amd64/current/images/netboot/netboot.tar.gz
Extract package: tar -zxvf netboot.tar.gz
3) Create a grub.cfg file at $tftproot/grub/grub.cfg to get things going. It at least needs to define one target. Here's an example:
################################
### grub.cfg using a preseed ###
menuentry "Install Ubuntu" {
set gfxpayload=keep
linux /ubuntu-installer/amd64/linux gfxpayload=800x600x16,800x600 -- auto=true url=http://YOUR_PRESEED_SERVER/preseed.cfg quiet
initrd /ubuntu-installer/amd64/initrd.gz
}
################################
Also note that the client machine will need PXE boot enabled (and possibly secure boot disabled)