RE: "Loader needs to be updated" (azure guest context)

From: Mark Millard <marklmi_at_yahoo.com>
Date: Mon, 30 Dec 2024 17:02:56 UTC
void <void_at_f-m.fm> wrote on
Date: Mon, 30 Dec 2024 15:45:43 UTC :

> Hi,
> 
> context is
> 
> freebsd amd64 vm on Azure (initially installed via azure marketplace several 
> years ago (12-releng)), and has been upgraded as updates became available 
> with freebsd-update over the years all the way up to 13.4-p1 now.
> System updates/upgrades have *always* been managed with freebsd-update.
> 
> Latest upgrade from 13.3-p6 to 13.4-p1 shows "loader needs to be updated" 
> in the beastie menu in the console now. This is new.
> 
> # zfs --version
> zfs-2.1.14-FreeBSD_gd99134be8
> zfs-kmod-2.1.15-FreeBSD_gd99134be8
> 
> (perhaps side issue - different version numbers, same -FreeBSD_gd99134be8 ?!!)
> 
> This system is *not* root-on-zfs. There is zfs, but it's data on 
> a non-boot virtual disk.
> 
> "zpool status" invites me to upgrade the pool. I've not done this (have 
> never done it with this vm, either), and don't want to unless I'm
> absolutely certain upgrading the pool won't break everything.
> 
> I note from a (similar, but different context) thread last September
> https://lists.freebsd.org/archives/freebsd-current/2024-September/006378.html
> that FreeBSD uses "the guest's boot loader and the host's /boot/lua files"
> but I'm clueless how this would apply in an amd64 context with Azure
> as the host.
> 
> What do i have to do? Also, is the warning safe to ignore in this context?

Context: My notes here do not span extra issues
associated with VM's (guest vs. host file
usage). But I expect they still apply in part,
such as about what is likely not involved: ZFS.

Just an FYI that "loader" here is likely material on a
msdosfs file system that is in a GPT or MBR partition.
See the 2 *.efi file names listed below (not done from
a 13.* context):

# find /boot/efi/EFI/ -print
/boot/efi/EFI/
/boot/efi/EFI/FREEBSD
/boot/efi/EFI/FREEBSD/loader.efi
/boot/efi/EFI/BOOT
/boot/efi/EFI/BOOT/bootx64.efi

The details of the directory name used for the mount
point might not be efi, possibly: msdos . EFI might
not be capitalized in your context. (I like to keep
the two visually distinct.) You may not have FREEBSD/
but should have at least BOOT/ . Again, there might
be capitalization differences.

So far as I know, "Loader needs to be updated" would
have nothing to do with ZFS or other file system
vintage. It just means that the *.efi file used is an
older vintage, if I understand right.

I've never figured out just when the FREEBSD/ is
appropriate to have --and so have maintained having
both (same content). Such may well not be needed for
my context.

To my knowledge freebsd-update, and FreeBSD in general,
does not maintain the msdosfs content involved, such as
the *.efi files: that is an extra manual step. Various
details are possibly outside FreeBSD's control, such
that automatic updating might not always go so well?

===
Mark Millard
marklmi at yahoo.com