PXE in UEFI/OVMF mode "client does not accept options"

FelixJ

Well-Known Member
Mar 1, 2019
66
3
48
44
Hi everyone,
Unfortunately I did not find any satisfying answers to this topics in any other post, so I'm starting a new one:

In short: If I boot a VM in OVMF using vmxnet3 (I also tried e1000) aiming to boot via pxe to my tftp server, where it is served ipxe.efi (a build working fine on dozens of bare-metal computers of different brands (HP, Lenovo)), OVMF ignores the received ipxe.efi (tftp log shows "client does not accept options", and continues on trying any other boot-device.

I investigated a little further:
As I build my own ipxe.efi images with embeded scripts to chainload from http server, so that the setup will work from any computer, what ever the native pxe-build might be, I know, that there are 32 and 64bit efi builds, as well as 32-bit bios-pxe builds.
My usual target would then be
make bin-x86_64-efi/ipxe.efi EMBED=nasboot.ipxe
which produces
MS-DOS executable PE32+ executable (DLL) (EFI application) x86-64, for MS Windows
I also tried
make bin-x86_64-efi/vmxnet3.efi EMBED=nasboot.ipxe
which produces the same as above
And
make bin-x86_64-efi/vmxnet3.efirom EMBED=nasboot.ipxe
which produces
BIOS (ia32) ROM Ext. (206*512)

If I examine the pxe/efi roms from /usr/share/kvm, I realize, that those look more like plain 32bit roms rather then 32/64bit as the one, I create using the .efi target when compiling ipxe.

/usr/share/kvm# file pxe-* pxe-e1000.rom: BIOS (ia32) ROM Ext. (131*512) pxe-eepro100.rom: BIOS (ia32) ROM Ext. (120*512) pxe-ne2k_pci.rom: BIOS (ia32) ROM Ext. (120*512) pxe-pcnet.rom: BIOS (ia32) ROM Ext. (120*512) pxe-rtl8139.rom: BIOS (ia32) ROM Ext. (120*512) pxe-virtio.rom: BIOS (ia32) ROM Ext. (118*512) /usr/share/kvm# file efi-* efi-e1000.rom: BIOS (ia32) ROM Ext. (134*512) efi-e1000e.rom: BIOS (ia32) ROM Ext. (134*512) efi-eepro100.rom: BIOS (ia32) ROM Ext. (134*512) efi-ne2k_pci.rom: BIOS (ia32) ROM Ext. (133*512) efi-pcnet.rom: BIOS (ia32) ROM Ext. (133*512) efi-rtl8139.rom: BIOS (ia32) ROM Ext. (135*512) efi-virtio.rom: BIOS (ia32) ROM Ext. (135*512) efi-vmxnet3.rom: BIOS (ia32) ROM Ext. (206*512) efi-vmxnet3.rom.orig: BIOS (ia32) ROM Ext. (132*512)

My next step was to replace the original vmxnet3.rom with my own one, that has the nasboot script embeded, so that the boot process would continue via http.
That works, my ipxe boot menue is downloaded via http and I get my boot options.
How ever, what ever I try to boot now, my Windows 10 Setup or SystemrescueCD, launching wimboot or the SysrescueCD-Kernel, after the download I am back on the OVMF shell.

Now, If I switch from OVMF to BIOS, the same procedure works just fine.

I know, I could distribute some DHCP options for the VM to boot via HTTP. That would be a work arround but not a solid solution.
How ever, If it is a known limitation of OVMF, that I can't do 64-bit, that I would go for that.
I also might completely be wrong with all my assumptions, regarding 32 and 64 bit...
What ever it is, I would appreciate some help in that matter!
Thanks a lot,
Felix
 
Hi again,
this issues still persists. I'd be very happy, if someone could shed some light on that issue.
Thanks, regards and nice week-end!
Felix
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!