Yeah, my procedure is the same as yours: I first copy 
/boot/efi/efi/freebsd/loader.efi to /boot/efi/efi/freebsd/loader.old, then copy 
the freshly built and installed /boot/loader.efi to 
/boot/efi/efi/freebsd/loader.efi. I don't see a technical reason why this could 
not be just another step in the installworld procedure.

That said, I am unsure if the pathname /boot/efi/efi is always the same, at 
least for all UEFI systems. It is the default layout when you do a regular 
install with recent installer onto a UEFI system, but some users may use 
completely different mount points. So you should still have some way of 
configuring the default location for loader installation.

Also, on default installations a fallback entry named 
/boot/efi/efi/boot/bootx64.efi is made, essentially another copy of loader.efi 
but with a different name. Namely, the default name that UEFI (on x86_64 at 
least) searches for, if it doesn't know anything else. I.e. if it isn't 
configured via efibootmgr(8), or the EFI variables have been junked for some 
reason. It might make sense to also update that file.

-Dimitry

> On 21 Dec 2023, at 13:59, Nuno Teixeira <edua...@freebsd.org> wrote:
> 
> Hello Dimitry,
> 
> For a moment I forgot that efiboot is a fat system...
> I am inspired on what installworld does to kernel and kernel.old.
> I was thinking in something like it but with efi boot, something automatic.
> 
> Thanks! 
> 
> Dimitry Andric <d...@freebsd.org> escreveu no dia quinta, 21/12/2023 à(s) 
> 12:48:
> On 21 Dec 2023, at 13:22, Nuno Teixeira <edua...@freebsd.org> wrote:
> > 
> > On every current upgrade I update efi/freebsd/loader.efi (amd64) and 
> > efi/boot/boota64 (aarch64) with new copies on /boot/loader.efi.
> > For safety reasons I always have a copy of last running loader by appending 
> > "-old.efi" to loader or boota64 and use beinstall to get BEs if needed.
> > 
> > Is that possible to link, e.g., /boot/efi/efi/freebsd/loader.efi -> 
> > /boot/loader.efi ?
> 
> Symlinks do not work on FAT file systems, so I assume you mean a symlink 
> placed in /boot (assuming that is UFS or ZFS), which points to 
> /boot/efi/efi/freebsd?
> 
> At the moment I think installworld would not write 'through' such a symlink. 
> In fact, it makes a hard link from /boot/loader_lua.efi to /boot/loader.efi, 
> unlinking any previous /boot/loader.efi.
> 
> That said, it would be nice to have some sort of semi-official way of 
> upgrading the real EFI loader through installworld. It would probably require 
> some top-level Makefile magic.
> 
> -Dimitry
> 
> 
> 
> -- 
> Nuno Teixeira
> FreeBSD Committer (ports)


Reply via email to