Re: Current best practices: UEFI boot on zfsboot nvme raid?

From: Paul Mather <paul_at_gromit.dlib.vt.edu>
Date: Thu, 23 Mar 2023 20:05:59 UTC
On Mar 23, 2023, at 3:33 PM, Derek (freebsd lists) <482254ac@razorfever.net> wrote:


> On 2023-03-23 15:23, Paul Mather wrote:
>> On Mar 22, 2023, at 4:56 PM, Derek (freebsd lists) <482254ac@razorfever.net> wrote:
>>> My guess is, like swap, it might be possible to gmirror across my RAID this filesystem and remove all of these considerations.  Is this the best practice?
>> I don't know if it's best practices, but that is what I do.  I have a /dev/mirror/efi geom_mirror msdosfs mounted via /etc/fstab on /boot/efi.  That makes it easy to update both copies at once and keep them in sync.
>> However, the HUGE downside is that efibootmgr doesn't appear to work with GEOM labels, and so I get "efibootmgr: Cannot translate unix loader path" errors when trying to create new boot entries via "efibootmgr -c". :-(
>> I believe this Bugzilla is pertinent, and it still appears to be open: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=229191
>> So, I guess best practices for everything working is to stick with the low-level device names like ada0p1 and so on.
> 
> This is great information, and good leads to follow.  Thanks for your reply.
> 
> For those finding the thread later, I feel like "stick with low-level device names" refers to the work around when using efibootmgr referenced in the bug.


I want to affirm what Derek states above.  Using the workaround given in the Bugzilla I was able to create new EFI boot variables via "efibootmgr -c".  Note, you do need to be careful about the path given for the "-l" option as it won't translate for you as shown in the manual page.  E.g., I ended up doing the following:

	efibootmgr -a -c -l ada0p1:/EFI/freebsd/loader.efi -L "FreeBSD-STABLE D0"

(Note that the path given after the device name for "-l" refers to the path in the EFI [msdosfs] partition, not where it is mounted on the FreeBSD system.)

That resulted in this entry being created:

+Boot0001* FreeBSD-STABLE D0 HD(1,GPT,3fa4f298-d933-11ec-9b67-002590da97de,0x28,0x82000)/File(\EFI\FREEBSD\LOADER.EFI)
                                ada0p1:/EFI/FREEBSD/LOADER.EFI (null)



Cheers,

Paul.