I'm attempting to automate Linux deployments for our department using PXE booting. I've been able to successfully set it up for legacy boot, but UEFI still seems to elude me.
I've been mostly following the instructions here. Legacy works fine, but it seems that UEFI doesn't even contact the TFTP server to load the shim.efi file (nothing shows up in the tftpd logs).
Here are the relevant parts of dhcpd.conf
option architecture-type code 93 = unsigned integer 16;
option space pxelinux;
option pxelinux.magic code 208 = string;
option pxelinux.configfile code 209 = text;
option pxelinux.pathprefix code 210 = text;
option pxelinux.reboottime code 211 = unsigned integer 32;
option architecture-type code 93 = unsigned integer 16;
and
subnet 10.10.8.0 netmask 255.255.255.0 {
option routers 10.10.8.1;
option broadcast-address 10.10.8.255;
option subnet-mask 255.255.255.0;
range 10.10.8.100 10.10.8.200;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 10.10.8.5; # tinkerbell.eecs.umich.edu
if option architecture-type = 00:07 {
filename "uefi/shim.efi";
} else {
filename "pxe/pxelinux.0";
}
}
}
The DHCP server is running Ubuntu 14.04 isc-dhcp-server and the TFTP server (which hosts all the PXE related files) is running RHEL 7.
tftp
command. You should be able to testtftp
connectivity using that command.