On Tue, Sep 5, 2023 at 9:53 AM Steffen Nurpmeso <steffen@sdaoden.eu> wrote:
Steffen Nurpmeso wrote in
 <20230904221059.sF2G0%steffen@sdaoden.eu>:
 |Norman Wilson wrote in
 | <9A989054DE79CE5059CBA74797391E39.for-standards-violators@oclsc.org>:
 ...
 ||Perhaps the question to ask is why such a magic program is
 ||needed at all.  Is it just because programs like the shell
 ||have become so large and unwieldy that they won't fit in
 ||a small environment suitable for loading into an initramfs?
 ...
 |For my laptop it allows me easy boot management.
 ...
 |  -rwxr-xr-x  1 root root     4596 Feb  4  2023  linux-init-s1.sh*
 |  -rwxr-xr-x  1 root root     3646 Feb  4  2023  linux-init-lib.sh*
 |  -rwxr-xr-x  1 root root  5480120 Feb 11  2023  cryptsetup.static*
 |  -rwxr-xr-x  1 root root  1978368 Aug 15 18:51  busybox.static*
 |  -rwxr-xr-x  1 root root 10112672 Aug 26 18:44  ideapad-stage1.efi*

Only to add that this is because of Linux and the way it is doing
things.  If i would use FreeBSD on bare metal, then i would have
an EFI boot loader on EFI that knows (only) enough to ask for
passphrase (correct me if i am wrong), and can then boot the
kernel from FFS or ZFS.  (You have to choose dedicated ZFS boot
loader iirc, but despite that...)

No, you don't have to choose the dedicated ZFS boot loader, at least not
anymore.

Also, you can use boot1.efi to load loader.efi from the root filesystem to
load the kernel, or you could use loader.efi directly on the ESP to load
the kernel. boot1 barely knows anything (and has only one choice of
what to boot). loader.efi is the full deal, and can do rather a lot of
sophisticated things.
 
I know GRUB (and maybe other) Linux bootloaders can do all that,
but they are huge, are badly maintained, or under-documented, let
alone with local manuals, and i am too stupid to configure them
(due to all that).  refind is ok, however.  But.. be aware of
typos in the configuration..

But anyhow.  With an EFI_STUB Linux kernel i can save me all that,
with busybox i get a complete environment (i then even create an
initrd in /boot/ on the fly so i do not have to type the password
a second time, that can (optionally) be cached, and is, actually

  -rw------- 1 root root  4495987 May 29 16:29 .kent.initrd.0

Unfortunately cryptsetup is needed even though, i think, the
kernel has anything needed; you just cannot access it.  cryptsetup
is only needed for "$cs open $PART_ROOT p_root --key-file -".
Of course i am no real Linux expert but only a do-it-yourself guy.
busybox allows me to manage this easily, to answer your question.

You could do that on FreeBSD with a loader.efi that has a ram disk
built into it as well, including a 'beastie box' thing that's akin to busybox.
It will boot in one step and no no further I/O to get a running system.
Others have used this for secure boot and to boot a small ram disk that's
later discarded as userland decides what root should be. But it's much less
automated than in Linux...

Warner