diff --git a/UPDATING b/UPDATING --- a/UPDATING +++ b/UPDATING @@ -2485,16 +2485,42 @@ 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's three ways that FreeBSD bootstraps with EFI, due to a long + history. 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 don't 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's too small for a newer loader.efi). See loader.efi(8) and uefi(8) + for more details. + + 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. The ESP + is a MSDOS filesystem. + To build a kernel ----------------- If you are updating from a prior version of FreeBSD (even one just