NAME
boot1.efi
—
UEFI chain loader
DESCRIPTION
boot1.efi
has been deprecated and will be
removed from a future release.
loader.efi(8) handles all its former use cases with more
flexibility.
On UEFI systems, boot1.efi
loads
/boot/loader.efi from the default root file system
and transfers execution there. Some systems may need to use
gptboot.efi(8) when
loader.efi(8) cannot be used directly on the ESP (EFI System
Partition).
Initialization
Before looking for the boot device,
boot1.efi
does the following initialization
- Sets up the console using the default UEFI console routines.
- Discovers all possible block devices on the system.
- Initializes all file system modules to read files from those devices
Boot Device Selection
boot1.efi
uses the following sequence to
determine the root file system for booting:
- If ZFS is configured,
boot1.efi
will search the for zpools that are bootable, preferring the zpool on the boot device over the others. - If UFS is configured,
boot1.efi
will search all UFS partitions for a bootable partition. It will prefer the lowest numbered bootable partition on the boot device over all other choices. It will fall back to partitions on other devices if none are found.
A partition is considered bootable if it can load /boot/loader.efi from it. Command line arguments to the next boot stage are read from the first existing file of /boot.config or /boot/config in that order.
Caveats
- The order in which file systems are tried is undefined.
- No encryption support is available.
- There's no way to interrupt the boot process to select booting from some other location.
- When configuring a serial console for FreeBSD, but not for UEFI, no output will show up on the serial console from boot1.efi.
- There's no support for marking partitions as the preferred one. See gptboot.efi(8).
- There's no support for boot-once functionality. See gptboot.efi(8).