BOOT1.EFI(8)
π BOOT1.EFI π
okay so bestie, welcome to boot1.efi(8) β the UEFI chain loader from the System Manager's Manual. yes she's got a whole manual page and yes she's lowkey retired, but we're gonna learn her anyway because history is important and also I said so π
π¨ NAME π¨
boot1.efi β a UEFI chain loader, in all her chain-loading glory π
π DESCRIPTION π
ngl bestie, I have to break some news first. boot1.efi has been deprecated and will be removed from a future release. that's not me being dramatic, that's literally the manpage talking. loader.efi(8) handles literally all of her former use cases with more flexibility, so she's giving "retired icon who still shows up to the group photo." periodt.
so here's what she actually does on UEFI systems: she loads /boot/loader.efi from the default root file system and then transfers execution over there. passing the baton, main character energy, we love a handoff. π«Ά
some systems may need to use gptboot.efi(8) when loader.efi(8) cannot be used directly on the ESP (that's the EFI System Partition, iykyk). so like, if the usual girlies can't make it, you call in gptboot.efi(8). iconic.
β¨ Initialization β¨
before she even starts looking for the boot device, boot1.efi does the following setup. think of it as her getting ready before the party π
- sets up the console using the default UEFI console routines
- discovers all possible block devices on the system
- initializes all file system modules so she can read files from those devices
that's the whole pregame. three steps, no notes, slay.
π¦ Boot Device Selection π¦
now the actual main event: figuring out which root file system to boot from. she uses this exact sequence, no cap:
- if ZFS is configured,
boot1.efiwill search for zpools that are bootable, preferring the zpool on the boot device over all the others π - if UFS is configured,
boot1.efiwill search all UFS partitions for a bootable partition. she'll prefer the lowest numbered bootable partition on the boot device over every other choice, and she'll fall back to partitions on other devices if none are found π§
a partition counts as bootable if it can load /boot/loader.efi from it. that's the vibe check and it's non-negotiable bestie.
and the command line arguments for the next boot stage? those get read from the first existing file of /boot.config or /boot/config, in that exact order. first one wins, no arguing. π
π Caveats π
okay this is the section where I hold your hand because some of this is a little rough. read it, internalize it, don't come for me, I'm just the messenger:
- the order in which file systems are tried is undefined π no fixed order, it is what it is
- no encryption support is available. none. zero. zilch π
- there's no way to interrupt the boot process to select booting from some other location. so like, no "wait actually pick that one" moment. she's already gone π
- when configuring a serial console for FreeBSD, but not for UEFI, no output will show up on the serial console from
boot1.efi. that's the caveat, that's the whole caveat π - there's no support for marking partitions as the preferred one. if that's what you need, see
gptboot.efi(8) - there's no support for boot-once functionality either. again, see
gptboot.efi(8)β she's got you on that one πΈ
real talk: if any of those missing features are a dealbreaker, the move isloader.efi(8)orgptboot.efi(8), not trying to makeboot1.efido something she literally cannot do. we respect her limits in this house.
π SEE ALSO π
those are your girlies. go say hi. π₯
and that's the whole page bestie!! β¨ source: Debian, dated April 6, 2021 β so go forth, chain-load responsibly, and remember that deprecation is just a vibe shift ππβ
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- π the page's license: BSD-2-Clause
- Copyright (c) 2020 Netflix, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms