virtualbox uefi PXEBoot

Using Virtualbox 6.1 following worked for me. On the machine settings do following:

  • "System->Enable EFI"
  • "Network->Advanced->Adapter Type: Paravirtualized Network (virtio-net)".

With this, it by default boots into UEFI shell. Type exit, which brings up a Boot Manager menu. In that menu, chose UEFI PXEv4 from the Boot Manager and you'll see a new screen that says

>>Start PXE over IPv4.

Then it will boot into your grub.cfg. To make the VM automatically boot over PXE, you need to go into boot menu and change boot order.

Note that to see UEFI PXEv4, I specifically had to chose Paravirtualized Network adapter. None other worked.


I've managed to solve this. Actually it comprises of two issues.

  1. VirtualBox doesn't support PXEBooting when EFI is enabled
  2. Using bare metal machine showed that DHCP requests are being sent but proxyDHCP "additional" responses are not processed (EFI PXEBoot failure). It turned out that it is an issue with dnsmasq - min version to support EFI is 2.76