Re: zpool upgrade and bootcode on 13-RELEASE

From: Michael Gmelin <freebsd_at_grem.de>
Date: Fri, 28 May 2021 18:50:52 UTC

On Fri, 28 May 2021 20:37:14 +0200
Mathieu Arnold <mat@freebsd.org> wrote:

> On Wed, May 19, 2021 at 07:32:43PM +0200, Michael Gmelin wrote:
> > 
> > 
> > On Wed, 19 May 2021 19:09:06 +0200
> > Kurt Jaeger <pi@freebsd.org> wrote:
> >   
> > > Hi!
> > >   
> > > > Does this mean, re-installing the bootcode isn't necessary
> > > > anymore
> > > > - or has the warning been removed by accident/as a side effect
> > > > of merging with OpenZFS?    
> > > 
> > > On the contrary, because of the switch from FreeBSD ZFS to
> > > OpenZFS, the bootcodes needs to be updated! It's unfortunate
> > > that no message is displayed 8-(
> > >   
> > 
> > That's too bad - maybe it would make sense to mention this in the
> > release errata?
> >   
> > > The problem is, finding out which bootcode needs to go where etc.
> > >  
> > 
> > For the machines in question it was a straightforward legacy
> > layout, so that was easy enough (they came back up just fine -
> > *phew*).
> > 
> > Do you think there is any chance to get the warning back in there?
> > Maybe in a more generic way, like:
> > 
> >   In case you're booting from <poolname>, please make sure to update
> >   the bootcode according to your partition layout. See `man zfsboot'
> >   for details.
> > 
> > Fun fact: That man page already exists (I had no idea), but could
> > use some love - e.g., add the EFI examples you gave.  
> 
> I have had a look at that man page, it gives ten different commands,
> without saying which you need to use, if they are all needed, or not,
> or when you actually have to used them.
> 
> Fun fact is that I absolutely never ever used any of them.  All I ever
> did was run:
> 
>   gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
> 
> because `zpool upgrade` told me to.  It would probably be great to
> have that command in that man page.
> 

Hi Mathieu,

I opened a pull request upstream. It already has been reviewed and
accepted, but is yet to be merged:
https://github.com/openzfs/zfs/pull/12104

The bootcode warning is now only shown for pools that have bootfs set
(which should be fine on most "normal" installations) and reads like
this:

  Pool 'testpool8' has the bootfs property set, you might need to update
  the boot code. See gptzfsboot(8) and loader.efi(8) for details.

I figured that these are the most relevant man pages for current
systems. It would make sense to update these man pages to be more
helpful (latest, when this change lands in FreeBSD, but earlier
obviously won't hurt).

Best
Michael

-- 
Michael Gmelin