Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Feb 2021 11:02:59 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        David Marec <david.marec@lapinbilly.eu>
Cc:        freebsd-stable <freebsd-stable@freebsd.org>
Subject:   Re: FreeBSD 13/stable and zpool upgrade
Message-ID:  <CANCZdfrm0dpQ6tyggj-VStTz1zTz8wvqZ35ePn5Dc-o66nC4JQ@mail.gmail.com>
In-Reply-To: <ac735a6b-b82e-36e4-eb66-d2c0d422cc75@lapinbilly.eu>
References:  <ac735a6b-b82e-36e4-eb66-d2c0d422cc75@lapinbilly.eu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Feb 19, 2021 at 8:13 AM David Marec <david.marec@lapinbilly.eu>
wrote:

> I have just upgrade one machine from 12-stable to 13-stable.
>
> Everything runs fine until the main ZFS pool was upgraded.
>
> Then the box stopped booting.
>
> Thanks to a FreeBSD-13 Beta2 usb stick, I was able to fix the issue by
> copying `BOOTx64.efi` from the stick to the hard-drive.
>
> Looking to `/boot` to check out for a new EFI boot-loader available, I
> noticed that `boot1.efifat` was removed, but `gptboot.efifat` is still
> there.
>
> Unfortunately it contains an old version of the boot loader:
>
> root@machine:/boot # mdconfig -f gptboot.efifat -u 0
> root@machine:/boot # mount -t msdosfs /dev/md0 /mnt
> root@machine:/boot # ll /mnt/efi/boot/
> total 385
> -rwxr-xr-x  1 root  wheel  393216 Apr 16  2018 BOOTx64.efi*
> -rwxr-xr-x  1 root  wheel      12 Apr 16  2018 startup.nsh*
>
> The boot firmware I got from the 13-Beta2 installer is different:
>
> -rwxr-xr-x  1 root  wheel  894464 Feb 18 21:07 BOOTx64.efi*
>
> What did I missed ?


An error message would be more helpful :)

However, I think I know what's going on. The old boot blocks have a filter
on the enabled features of the zpool. If anything that's not in the allowed
list is enabled, it won't boot off that pool.

I suspect that your 'zpool upgrade' enabled things that weren't enabled
before. This caused the old boot blocks to no longer work.

We should be better about upgrading boot blocks, but EFI is kinda new and
kinda different than the other out-of-root-filesystem boot blocks we've had
in the past, so there's still some rough edges.

You should be able to update bootx64.efi to the one that's in the 13-beta2
installer and the system should boot off your zpool.

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfrm0dpQ6tyggj-VStTz1zTz8wvqZ35ePn5Dc-o66nC4JQ>