Failed to find bootable partition - could be a bug of loader.efi on FreebSD 13?

I use UEFI boot.

/boot/loader.efi has been copied to /EFI/BOOT/BOOTX64.efi of a proper ESP partition and we can see it was actually called by the UEFI. It won't go on the next boot stage.

disk1p3 is actually that boot partition with /boot, but why loader.efi won't recognize it as a bootable one?

# gpart show -p da0
=>      40  60088240    da0  GPT  (29G)
        40      2008         - free -  (1.0M)
      2048      1024  da0p1  freebsd-boot  (512K)
      3072      1024         - free -  (512K)
      4096   1126400  da0p2  efi  (550M)
   1130496   6291456  da0p3  freebsd-zfs  (3.0G)
   7421952   8388608  da0p4  freebsd-swap  (4.0G)
  15810560  31457280  da0p5  freebsd-zfs  (15G)
  47267840  12820440         - free -  (6.1G)
  - free -  (6.6G)


3. Name: da0p3
   Mediasize: 3221225472 (3.0G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 578813952
   Mode: r0w0e0
   efimedia: HD(3,GPT,95784aaa-a45b-11ec-b008-002324dd245d,0x114000,0x600000)
   rawuuid: 95784aaa-a45b-11ec-b008-002324dd245d
   rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
   label: usbzfsboot0
   length: 3221225472
   offset: 578813952
   type: freebsd-zfs
   index: 3
   end: 7421951
   start: 1130496

Note, I created freebsd-boot just in case for BIOS systems, it's irrelevant to the issue.

The core issue is why da0p3 freebsd-zfs can't be recognize as a bootable partition by loader.efi.

UEFI(8) tells:

3. loader.efi searches partitions of type freebsd-ufs and
freebsd-zfs for loader.efi. The search begins with partitions
on the device from which loader.efi was loaded, and continues
with other available partitions. If both freebsd-ufs and
freebsd-zfs partitions exist on the same device the
freebsd-zfs partition is preferred.

Btw, what actually "Only one DP found" means in this context?

I didn't experiment with boot1.efi as FreeBSD 13 "promotes" loader.efi to handle all things.

Handbook says "Work is under way to provide direct UEFI booting."

Could it be that UEFI boot is not actually yet implemented?


  • load_issue.jpg
    227.7 KB · Views: 81
In the picture you shared you are in OK prompt (prompt from a bootloader). ls is a valid command. My first assumption/guess is that /boot doesn't exist on the partition it tries to find it. skunk's advice is also on point, zpool set bootfs= should point to a fileset where /boot actually is.
The prompt is not from a bootloader but from EFI that called BOOTX64.efi, which is eventually loader.efi .
/boot shouldn't exist on ESP.
Boot staging process did not even reach the right freebsd-zfs partition, so questions about zpol's settings are pointless.
The question is whether loader.efi is really capable to manage things it should or there is a bug for UEFI environment.
That OK prompt looks word-by-word to a bootloader prompt. Even that typo and error you have there is exactly the same response. I have hard time believing it's not it.
In the picture system is already trying to reach for /boot/lua/loader.lua so it's not pointless, it's seems to be right on the money to find bootpool.

/boot shouldn't exist on ESP.
Nobody said it should be.


Staff member