VMware Cloud Community
rspoto
Contributor
Contributor

UEFI PXE Boot in 5.1 VM

Hello -

I've been trying to implement a UEFI PXE boot scenario all day with only partial success.  UEFI PXE booting to a physical UEFI-enabled server works perfectly fine with no problems.  However UEFI PXE booting inside a VM does not.

The VM is using HW version 8 and is configured for UEFI boot.  The VM gets a DHCP address and downloads/executes shim.efi which in turn downloads and executes grubx64.efi.  That's where it dies.  grubx64.efi seems to not be able to talk to the TFTP server at all.  It ultimately times out and gives me a grub command prompt.  Any boot attempt gives me a "timeout: could not resolve hardware address" error.  In watching the TFTP activity, I can see it downloading both .efi files, but never receives an attempt to get any configuration files.  Running tcpdump shows the file transfer activity, and then a whole ton of ARP requests (and responses) but grub either isn't getting them or is ignoring them for some reason.

I've verified the virtual NIC is E1000 and I've even turned on promiscuous mode for the portgroup.  Can't seem to get past this point.

Any ideas would be grateful, thank you!

Ron

Tags (5)
0 Kudos
2 Replies
dariusd
VMware Employee
VMware Employee

Hi Ron,

EFI PXE boot can be ... troublesome.  It's proven very difficult to make it work reliably with all the different 3rd party EFI PXE bootloaders.

Which ESXi version and build are you using?  Which shim.efi and grubx64.efi are you using?  (Did you build from source, or obtain them from some version of some Linux distro?)  With that info in hand, I can try to figure out if there are any known issues which fit the situation...

Thanks in advance,

--

Darius

0 Kudos
rspoto
Contributor
Contributor

Hi Darius -

Using ESXi 5.1, and both the shim and grubx64 are from a RHEL distro (7.1).  I've also tried bootloaders from CentOS and SLES with mixed results.

FWIW, syslinux's EFI bootloader works just fine, though a little slow.

0 Kudos