Re: 13.3R's installworld killed system--please help!

From: Scott Bennett <bennett_at_sdf.org>
Date: Mon, 09 Sep 2024 07:14:13 UTC
Mark Millard <marklmi@yahoo.com> wrote:

     Thanks much for this reply.  It looks quite interesting.

> Scott Bennett <bennett_at_sdf.org> wrote on
> Date: Mon, 09 Sep 2024 02:13:19 UTC :
>
> > ax61@disroot.org wrote:
> > 
> > Thank you for replying!
> > . . .
> > >
> > > Looks like did not update the boot loader.
> > 
> > Looks like what did not update it?
> > My understanding was that rewriting the boot code was a step incorporated
> > into installworld at least a couple of major releases ago.
>
> Nope.
>
> It looks like the 13.* UDPATING text never got the additional
> wording that was added to help avoid confusions, including
> 13.4-RC3 not having it.
>
> So, quoting from 14.1's UPDATING . . .
> [See the "2)" and "3) . . . New bootblocks . . ." wording and
> the later "The EFI boot loader . . . For ZFS booting  . . ."
> wording. They indicate, for a ZFS boot "drive"/partition/. . .,
> explicitly upgrading bootblocks (if any) and/or boot loaders
> before doing a zpool upgrade.]
>
> QUOTE
> ZFS notes
> ---------
> When upgrading the boot ZFS pool to a new version (via zpool upgrade),
> always follow these three steps:
>
> 1) recompile and reinstall the ZFS boot loader and boot block
> (this is part of "make buildworld" and "make installworld")

     So does 13.3-RELEASE include the above in its buildworld and
installworld make(1) targets?  In my tower's case, no pools have been
"zpool upgrade"d past 12.4-RELEASE-p2.  Also, as noted in my previous
posting, I've run "gpart bootcode" to install the 13.3-RELEASE version
of the boot loader and boot block onto both of the boot drives, but
nothing changed in what happens when (trying to) boot the system.
>
> 2) update the ZFS boot block on your boot drive (only required when
> doing a zpool upgrade):
>
> When booting on x86 via BIOS, use the following to update the ZFS boot
> block on the freebsd-boot partition of a GPT partitioned drive ada0:
> gpart bootcode -p /boot/gptzfsboot -i $N ada0
> The value $N will typically be 1. For EFI booting, see EFI notes.

     So done.
>
> 3) zpool upgrade the root pool. New bootblocks will work with old
> pools, but not vice versa, so they need to be updated before any
> zpool upgrade.

     As pointed out above, no pools on the tower have been upgraded since
the installworld that killed the system.
>
> Non-boot pools do not need these updates.

     Okay and good to know.
>
> EFI notes
> ---------
>
> There are two locations the boot loader can be installed into. The
> current location (and the default) is \efi\freebsd\loader.efi and using
> efibootmgr(8) to configure it. The old location, that must be used on
> deficient systems that don't honor efibootmgr(8) protocols, is the
> fallback location of \EFI\BOOT\BOOTxxx.EFI. Generally, you will copy
> /boot/loader.efi to this location, but on systems installed a long time
> ago the ESP may be too small and /boot/boot1.efi may be needed unless
> the ESP has been expanded in the meantime.
>
> Recent systems will have the ESP mounted on /boot/efi, but older ones
> may not have it mounted at all, or mounted in a different
> location. Older arm SD images with MBR used /boot/msdos as the
> mountpoint. The ESP is a MSDOS filesystem.
>
> The EFI boot loader rarely needs to be updated. For ZFS booting,
> however, you must update loader.efi before you do 'zpool upgrade' the
> root zpool, otherwise the old loader.efi may reject the upgraded zpool
> since it does not automatically understand some new features.
>
> See loader.efi(8) and uefi(8) for more details.
> END QUOTE

     The EFI information is also good to know in case I ever get a system
that is new enough to support EFI.
     Back to the problem at hand ... is it possible that the new boot program
and boot block(s) actually have a problem with a boot pool that has *not* been
"zpool upgrade"d?  IOW, would a "zpool upgrade system" conceivably fix the
problem, enabling the new boot block(s) and boot program to work?

					Scott