[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: RFC: bootloader/initramfs protocol v2



Having written a similar inquiry not too long ago, I welcome this discussion,
thanks! :)

On Tue, Nov 01, 2022 at 09:29:07PM +0100, Bastian Blank wrote:
> ## Prior works
> 
> [..]
> - systemd install-kernel: only BLS as target, which nothing used by
>   default in Debian can read
> [..]

To maybe clarify this a bit: While kernel-install does target BLS primarily, it
has support for differing layouts via the KERNEL_INSTALL_LAYOUT environment
variable (set via layout= in {/usr/lib,/etc}/kernel/install.conf).

kernel-install scripts are also just that, executables with two CLI entry points
(add and remove) and a set of fixed environment variables that they
receive. Currently all of this is written in POSIX shell (compatible with
dash) - they can be made to do everything.

The BLS type 1 loader entries (an example can be found in the BLS [1]) can in
the worst case be read with a line of AWK or shell, but Unified Kernel Images
(UKIs / BLS type 2) are fully self-contained and can do without any sidecar
config files.

> ## File system layout
> 
> Some initial ideas about how stuff could look.
> 
> ### Boot file system (/boot)
> 
> This file system might be shared, so everything is somewhat referenced
> to the machine id.  This should be somewhat compatible with BLS (type
> 1).
> 
> * /boot/$machineid/
>   * ./grub/: config snippets, so we can do "no overwrite"
>

kernel-install and BLS support a bit more than the machine ID here, The relevant
keyword to look for in the kernel-install manpage and BLS is "entry-token".

This was added for golden master setups, because the machine ID will probably
only generated on first boot, but the initrd would be generated beforehand.

best regards,
Jörg

[1] https://uapi-group.org/specifications/specs/boot_loader_specification/


Reply to: