[GH-ISSUE #1610] Add FreeBSD support for UEFI boot machines #539

Open
opened 2026-02-27 14:52:08 +03:00 by kerem · 5 comments
Owner

Originally created by @sbraz on GitHub (Apr 15, 2025).
Original GitHub issue: https://github.com/netbootxyz/netboot.xyz/issues/1610

Is your feature request related to a problem? Please describe.
Hi, at the moment, the BSD menu is not available on UEFI boot machines. This was apparently mentioned in #479.

Describe the solution you'd like
It would be nice if https://github.com/netbootxyz/netboot.xyz/blob/master/roles/netbootxyz/templates/menu/freebsd.ipxe.j2 supported UEFI boot machines.

Describe alternatives you've considered
I tried booting an mfsbsd image with iPXE ↓

Additional context
The following script seems to boot on an UEFI machine although I'm not sure it's actually working:

Image

#!ipxe

sanboot https://mfsbsd.vx.sk/files/images/14/amd64/mfsbsd-14.2-RELEASE-amd64.img

See also https://github.com/mmatuska/mfsbsd/issues/110 and https://reviews.freebsd.org/D45404.

Originally created by @sbraz on GitHub (Apr 15, 2025). Original GitHub issue: https://github.com/netbootxyz/netboot.xyz/issues/1610 **Is your feature request related to a problem? Please describe.** Hi, at the moment, the BSD menu is not available on UEFI boot machines. This was apparently mentioned in #479. **Describe the solution you'd like** It would be nice if https://github.com/netbootxyz/netboot.xyz/blob/master/roles/netbootxyz/templates/menu/freebsd.ipxe.j2 supported UEFI boot machines. **Describe alternatives you've considered** I tried booting an mfsbsd image with iPXE ↓ **Additional context** The following script seems to boot on an UEFI machine although I'm not sure it's actually working: ![Image](https://github.com/user-attachments/assets/9625e609-1b29-484b-b5eb-bd4c22af4539) ```ipxe #!ipxe sanboot https://mfsbsd.vx.sk/files/images/14/amd64/mfsbsd-14.2-RELEASE-amd64.img ``` See also https://github.com/mmatuska/mfsbsd/issues/110 and https://reviews.freebsd.org/D45404.
Author
Owner

@antonym commented on GitHub (Apr 17, 2025):

This does seem to work and I can get to the root prompt to log in via mfsroot. But it appears that my networking in Proxmox doesn't appear to pick up for me to actually run a full instal.

<!-- gh-comment-id:2811766646 --> @antonym commented on GitHub (Apr 17, 2025): This does seem to work and I can get to the root prompt to log in via mfsroot. But it appears that my networking in Proxmox doesn't appear to pick up for me to actually run a full instal.
Author
Owner

@mx240 commented on GitHub (Nov 23, 2025):

This does seem to work and I can get to the root prompt to log in via mfsroot. But it appears that my networking in Proxmox doesn't appear to pick up for me to actually run a full instal.

The suggestion to load mfsbsd via sanboot is working for me on a UEFI-booted system (real computer, not a VM). I don't have Proxmox handy but it sounds like FreeBSD may not be compatible with the NIC that Proxmox is providing, can you try intel e1000?

<!-- gh-comment-id:3568276185 --> @mx240 commented on GitHub (Nov 23, 2025): > This does seem to work and I can get to the root prompt to log in via mfsroot. But it appears that my networking in Proxmox doesn't appear to pick up for me to actually run a full instal. The suggestion to load mfsbsd via sanboot is working for me on a UEFI-booted system (real computer, not a VM). I don't have Proxmox handy but it sounds like FreeBSD may not be compatible with the NIC that Proxmox is providing, can you try intel e1000?
Author
Owner

@russor commented on GitHub (Dec 10, 2025):

https://reviews.freebsd.org/D45404.

Just a FYI, this diff only adds support for BIOS boot, not UEFI. I made an early version of that diff; and my goal was to get memdisk iso booting to work, as it did with many Linux isos. This did make it into FreeBSD 15, which is great.

Unfortunately, memdisk is BIOS only, and I haven't really seen a similar facility for UEFI. UEFI 2.6 did add a Memory Disk Protocol, which seems like it would be useful, but I've not seen it in use. I have seen some developer notes on forums with ideas, but no releases though. But it seems like maybe it makes sense to load the image as a UEFI Memory Disk, and expose it as a NVDIMM and probably OSes that support NVDIMM will see it on boot with no changes needed to the OS (other than ensuring the driver is available)

<!-- gh-comment-id:3635547410 --> @russor commented on GitHub (Dec 10, 2025): > https://reviews.freebsd.org/D45404. Just a FYI, this diff only adds support for BIOS boot, not UEFI. I made an early version of that diff; and my goal was to get memdisk iso booting to work, as it did with many Linux isos. This did make it into FreeBSD 15, which is great. Unfortunately, memdisk is BIOS only, and I haven't really seen a similar facility for UEFI. UEFI 2.6 did add a Memory Disk Protocol, which seems like it would be useful, but I've not seen it in use. I have seen some developer notes on forums with ideas, but no releases though. But it seems like maybe it makes sense to load the image as a UEFI Memory Disk, and expose it as a NVDIMM and probably OSes that support NVDIMM will see it on boot with no changes needed to the OS (other than ensuring the driver is available)
Author
Owner

@klemensn commented on GitHub (Dec 14, 2025):

Linking https://github.com/netbootxyz/netboot.xyz/pull/1722 here for the archives.

<!-- gh-comment-id:3650888163 --> @klemensn commented on GitHub (Dec 14, 2025): Linking https://github.com/netbootxyz/netboot.xyz/pull/1722 here for the archives.
Author
Owner

@russor commented on GitHub (Jan 5, 2026):

I think sanboot should work for mfsbsd, but after my last message, I realized I could write a memdisk for UEFI, so I did: https://github.com/russor/memdisk_uefi/ (so far, only built for amd64 and lightly tested; I made a discussion thread for memdisk_uefi)

For mfsbsd, I think sanboot or my memdisk_uefi both work, as the loader will read from the mounted filesystem to create a memory disk that works after UEFI boot services ends and the FreeBSD kernel starts.

With a FreeBSD official image, (AFAIK) sanboot from an http(s) URI isn't available once UEFI boot services are exited. My memdisk_uefi sets up NVDIMM ACPI tables that work with FreeBSD (and Linux), but the FreeBSD official image's kernel (GENERIC) has the nvdimm as a loadable module only, not compiled in. You can load it from the loader prompt, but that's not friendly enough to live in netboot.xyz configs. I've got a request in to the person who helped me get the other patch in and hopefully we can get nvdimm enabled in the installer kernel and things could just work with the installer image.

<!-- gh-comment-id:3708879312 --> @russor commented on GitHub (Jan 5, 2026): I think sanboot should work for mfsbsd, but after my last message, I realized _I_ could write a memdisk for UEFI, so I did: https://github.com/russor/memdisk_uefi/ (so far, only built for amd64 and lightly tested; I made a [discussion thread](https://github.com/orgs/netbootxyz/discussions/1724) for memdisk_uefi) For mfsbsd, I think sanboot or my memdisk_uefi both work, as the loader will read from the mounted filesystem to create a memory disk that works after UEFI boot services ends and the FreeBSD kernel starts. With a FreeBSD official image, (AFAIK) sanboot from an http(s) URI isn't available once UEFI boot services are exited. My memdisk_uefi sets up NVDIMM ACPI tables that work with FreeBSD (and Linux), but the FreeBSD official image's kernel (GENERIC) has the nvdimm as a loadable module only, not compiled in. You can load it from the loader prompt, but that's not friendly enough to live in netboot.xyz configs. I've got a request in to the person who helped me get the other patch in and hopefully we can get nvdimm enabled in the installer kernel and things could just work with the installer image.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/netboot.xyz#539
No description provided.