diff --git a/UPDATING b/UPDATING --- a/UPDATING +++ b/UPDATING @@ -2485,16 +2485,48 @@ 1.) recompile and reinstall the ZFS boot loader and boot block (this is part of "make buildworld" and "make installworld") - 2.) update the ZFS boot block on your boot drive + 2.) update the ZFS boot block on your boot drive (only required when + doing a zpool upgrade): - The following example updates 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 (if booting from BIOS) or 2 (if - booting from EFI). + 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, there are many choices. The default installation places + loader.efi into the ESP in EFI\FREEBSD\LOADER.EFI. The following + updates it (assuming the ESP is on p1, and isn't already mounted): + mount -t msdos /dev/ada0p1 /boot/efi + cp /boot/efi/loader.efi /boot/efi/efi/freebsd + If you have a non-standard setup, please see the EFI notes section. Non-boot pools do not need these updates. + EFI notes + --------- + There are three configurations for FreeBSD EFI bootstraps. The default + way is to use efibootmgr(8) to select the ESP to boot from. This + installs loader.efi into \EFI\FREEBSD\LOADER.EFI. To update this + system, copy /boot/loader to \EFI\FREEBSD\LOADER.EFI on the ESP. + + Some systems do not work with efibootmgr(8) due to bugs or limitations, + and instead use the fallback location of \EFI\BOOT\BOOTxxx.EFI. For + newer installations, loader.efi, but for some older setups boot1.efi + will need to be used (both will work, but some older systems have an ESP + that is too small for a newer loader.efi). + + 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. The big exception is + when you do 'zfs upgrade' a root zpool. In that case, you must update + the ESP boot loader before the next reboot (otherwise the boot loader + may reject the zpool since it does not understand the new features). + + See loader.efi(8) and uefi(8) for more details. + To build a kernel ----------------- If you are updating from a prior version of FreeBSD (even one just