Re: bootcode update after zpool upgrade
- Reply: Warner Losh : "Re: bootcode update after zpool upgrade"
- In reply to: Warner Losh : "Re: bootcode update after zpool upgrade"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 24 Feb 2022 18:51:13 UTC
On 24/02/2022 17:55, Warner Losh wrote:
>
>
> On Thu, Feb 24, 2022 at 4:49 AM Miroslav Lachman <000.fbsd@quip.cz
> <mailto:000.fbsd@quip.cz>> wrote:
>
> On 24/02/2022 10:43, Alexander Leidinger wrote:
> > Quoting Miroslav Lachman <000.fbsd@quip.cz
> <mailto:000.fbsd@quip.cz>> (from Wed, 23 Feb 2022
>
> >> I am not sure what I should update. This machine is EFI boot only
> >> (this is the only one EFI machine we have).
> >
> >> Should I run:
> >> gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 2 nvd0
> >> gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 2 nvd1
> >
> > This is the bootcode zpool upgrade talks about.
> >
> >> Or should I update EFI partitions? (if so, then how?)
> >
> > The EFI partition contains the loader, not the bootcode.
> >
> > While we are at it, I'm still looking for the place where I can find
> > which features the bootcode supports. Not all features are
> supported for
> > a root pool.
>
> Thank you for the clarification!
>
>
> If you've updated your ZFS pool and have an old system, you do need to
> update
> the EFI boot code. None of the mbr stuff is used for EFI booting.
>
> If you have an old installation, it may be small. So ideally, you'd copy
> over /boot/loader.efi
> to ESP:efi/boot/bootx64.efi. However, it may be too big if you have an
> ESP created by the
> old installer. In that case, you'll need to either create a new, larger
> ESP, or copying /boot/boot1.efi
> instead.
This machine was installed 2 years ago as FreeBSD 11.2 and then upgraded
to 11.4 and 12.2. The last update was from 12.2-p9 to 12.2-p13 so the
machine was booting fine without modification of bootcode and with
FreeBSD 12.2-p9 but after the last update to -p13 I decided to run
"zpool upgrade".
So the question is, do I need to update efi/boot/bootx64.efi?
I tried to look at it:
# mount -t msdosfs /dev/nvd0p1 /media/
# ll /media/efi/boot/
total 385
-rwxr-xr-x 1 root wheel 384K Apr 16 2018 BOOTx64.efi*
-rwxr-xr-x 1 root wheel 12B Apr 16 2018 startup.nsh*
The BOOTx64.efi is old, from 11.2 install.
The newer one in /boot/ looks bigger
478K Mar 24 2021 loader.efi
And the second question is back on bootcode. I already run gpart bootcode:
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 2 nvd0
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 2 nvd1
But I found something in my notes from install time few years ago:
gpart bootcode -p /boot/boot1.efifat -i 2 /dev/nvd01
What really should be installed on freebsd-boot partition?
/boot/gptzfsboot or /boot/boot1.efifat
# gpart show
=> 40 1953525088 nvd0 GPT (932G)
40 409600 1 efi (200M)
409640 1024 2 freebsd-boot (512K)
410664 113624 - free - (55M)
524288 20971520 3 freebsd-swap (10G)
21495808 1932001280 4 freebsd-zfs (921G)
1953497088 28040 - free - (14M)
I am sorry for asking this questions but this is the only machine with
EFI I had and never did "zpool upgrade" on it.
Is there a way to test if the machine will be bootable befor I try to
reboot it? The machine is not physically accessible to me so the
recovery from failed boot is very problematic.
Kind regards
Miroslav Lachman