Introduction to UEFI HTTP(s) Boot with QEMU/OVMF

jtlebigot 88 points 28 comments June 12, 2026
blog.yadutaf.fr · View on Hacker News

Discussion Highlights (5 comments)

nijave

Having http as an alternative to tftp is a nice win. The range of things that can run an http server is much bigger than tftp >Additionally, adding the TLS layer brings back the missing integrity and confidentiality guarantees and thus paves the way to move critical boot components out of the trusted network, possibly even to a remote location/Cloud. Doesn't secure boot already provide this or am I misunderstanding something? I suppose secure boot only provides integrity but not confidentiality although I'm not sure how much confidentiality matters given we're just talking about the kernel here

noodlesUK

To what extent is this possible for actual metal hardware? I'm sure lots of us are running PXE/TFTP systems and HTTP would be a heck of a lot simpler.

jeffrallen

Hey, I'd say "hire this guy", but we already did. This is an excellent write up of excellent work by an excellent colleague. Thanks yadutaf!

naturalmovement

BTW Apple has been doing HTTP boot for like two decades at this point. How do you think Internet Recovery works? It leverages a dusty old Apple netbooting spec.

andrewjf

The worst thing about UEFI HTTP boot is the utter lack of information to debug anything that's gone wrong. Whether that's the DHCP filename option is some wrong format for whatever stupid mode the UEFI is in, or there's some dhcp relay issue. It literally tells you almost nothing besides "can't get NBP file size". The error messages seem to be written by people on a happy path who don't know how utterly broken almost everything about networking and DHCP even is. And this is all IPv4! The IPv6 stuff is even more cryptic with different DHCP options and dealing with RAs and managed-flag, other-flag, etc. It's infuriating. And I work on a team that writes code to generate all these things for automating bare metal for a living.

Semantic search powered by Rivestack pgvector
10,324 stories · 97,050 chunks indexed