Re: RELENG_13 to 14 upgrade fail

From: Xin LI <delphij_at_gmail.com>
Date: Thu, 02 Nov 2023 17:12:03 UTC
On Thu, Nov 2, 2023 at 9:50 AM mike tancsa <mike@sentex.net> wrote:

> On 11/2/2023 12:39 PM, Xin LI wrote:
>
>
>
> On Thu, Nov 2, 2023 at 9:28 AM mike tancsa <mike@sentex.net> wrote:
>
>> On one of my VMs that I upgraded from RELENG_13 to RELENG_14, I forgot
>> to update the boot loader so now at bootup, I have
>> ZFS: unsupported feature: com.klarasystems:vdev_zaps_v2
>>
>> Can't find /boot/zfsloader
>>
>> What is the best way to recover from this ? Its a raw vm image. gpart is
>> p1=freebsd-boot, p2=freebsd-swap,p3=freebsd-zfs
>>
>> I was thinking perhaps start up a second vm thats RELENG_14, mdconfig
>> the image, and then what do I need to do ? Just
>>
>> gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 md0 ?
>>
>
> Yes, note that if the host is running FreeBSD you can mdconfig the image
> on the host directly and do it on the host too.
>
> BTW. pmbr is very simple and doesn't change that often, updating
> gptzfsboot should be sufficient.
>
>
> Thanks!  Another server I have (zoo) is EFI. I have not upgraded the boot
> pool yet, but its a mirror (ada8 and ada9). Both are
> p1=efi
> p2=freebsd-boot
> p3=swap
> p4=zfs
>
>
> root@zoo2:~ # mount_msdosfs /dev/ada8p1 /mnt
> root@zoo2:~ # ls -lR /mnt/EFI/
> total 2
> drwxr-xr-x  1 root wheel 512 Feb  1  2021 BOOT
> drwxr-xr-x  1 root wheel 512 Nov 21  2020 freebsd
>
> /mnt/EFI/BOOT:
> total 1747
> -rwxr-xr-x  1 root wheel 894464 Feb  1  2021 BOOTX64.efi
>
> /mnt/EFI/freebsd:
> total 1747
> -rwxr-xr-x  1 root wheel 894464 Feb  1  2021 loader.efi
> root@zoo2:~ #
>
> They appear to be the same.  Do I just replace both those files ?
>
> root@zoo2:~ # find /mnt -type f | xargs md5
> MD5 (/mnt/EFI/freebsd/loader.efi) = 5dcb1e7bc59e5ee7a9bd04faaa20b7ee
> MD5 (/mnt/EFI/BOOT/BOOTX64.efi) = 5dcb1e7bc59e5ee7a9bd04faaa20b7ee
> root@zoo2:~ #
>
> with
>
> root@zoo2:~ # ls -l /boot/loader.efi
> -r-xr-xr-x  2 root wheel 659968 Oct 31 13:02 /boot/loader.efi
> root@zoo2:~ #
>
> Yes, for EFI you mount the EFI ESP (which is a msdosfs) and replace the
BOOTX64.efi with latest /boot/loader.efi , then umount the EFI ESP.

It's generally a good idea to have access to the physical system, or via a
remote console that allows you to mount a .iso image, by the way.

Cheers,