I would like to PXE boot some ESXi hosts using UEFI, but keep getting the following message:
I am testing with a VM and can see it hitting the DHCP/TFTP server (CentOS 7) in a packet capture (3 reboots were captured as follows):
09:18:04.995404 IP 192.168.0.136.rsc-robot > stager.test.lab.tftp: 50 RRQ "efi.x64/syslinux.efi" octet tsize 0 blksize 1468
09:18:04.997399 IP 192.168.0.136.cera-bcm > stager.test.lab.tftp: 42 RRQ "efi.x64/syslinux.efi" octet blksize 1468
...
09:18:40.700760 IP 192.168.0.136.itm-mcell-u > stager.test.lab.tftp: 50 RRQ "efi.x64/syslinux.efi" octet tsize 0 blksize 1468
09:18:40.704583 IP 192.168.0.136.optika-emedia > stager.test.lab.tftp: 42 RRQ "efi.x64/syslinux.efi" octet blksize 1468
...
09:18:57.525302 IP 192.168.0.136.altalink > stager.test.lab.tftp: 50 RRQ "efi.x64/syslinux.efi" octet tsize 0 blksize 1468
09:18:57.528201 IP 192.168.0.136.tunstall-pnc > stager.test.lab.tftp: 42 RRQ "efi.x64/syslinux.efi" octet blksize 1468
I was able to get the ESXi installer to run via UEFI as long as I directly point to the image file in "mboot.efi", which I placed in there from syslinux 6.03, but I want to use syslinux to pass in PXE configurations from a default configuration file. I am directing to there via DHCP, as seen below:
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;
log-facility local7;
allow booting;
allow bootp;
option client-system-arch code 93 = unsigned integer 16;
class "pxeclients" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
#TFTP Server
option tftp-server-name "192.168.0.250";
next-server 192.168.0.250;
if option client-system-arch = 00:00 {
filename = "bios/pxelinux.0";
} elsif option client-system-arch = 00:07 {
filename = "efi.x64/syslinux.efi";
}
}
subnet 192.168.0.0 netmask 255.255.255.0 {
option domain-name-servers 192.168.0.250;
range 192.168.0.100 192.168.0.145;
}
My tftpboot/pxelinux.cfg/default file:
UI vesamenu.c32
PROMPT 0
menu title UEFI Deployment
MENU INCLUDE graphics.conf
LABEL -
MENU label Standard Builds
MENU DISABLE
LABEL ESXi 6.7
MENU LABEL ^esxi 6.7
MENU INDENT 3
MENU DEFAULT
KERNEL images/ESXiv6.7/mboot.efi
APPEND initrd=/images/ESXiv6.7/boot.cfg ks=nfs://192.168.0.250/nfsshare/ks-prime.cfg
I can move the default file completely and have the same results. I do not believe that the boot is ever even getting pushed over to use it.
EDIT: I am adding in the TFTP logs. It does not look like it ever gets past loading syslinux.efi. It is worth noting that my BIOS implementation correctly is pulling the boot.cfg file from the image after loading its respective pxelinux.0 file. I'm assuming the default file is actually working in this instance and not the EFI default file.
TFTP UEFI Logs:
Jul 24 08:28:49 stager in.tftpd[49849]: Client ::ffff:192.168.0.136 finished efi.x64/syslinux.efi
Jul 24 08:35:58 stager in.tftpd[50227]: connect: Invalid argument
Jul 24 08:36:05 stager in.tftpd[50233]: connect: Invalid argument