Re: Vague proposal: ship prebuilt initramfs images

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

 





On Mon, Jan 20, 2020 at 5:58 PM Matthew Garrett <mjg59@xxxxxxxxxxxxx> wrote:
>
> I've been thinking about ways to solve this for a while, and I'm coming
> to the conclusion that the best plan is probably to just ship pre-built
> initramfs images. I can think of three main reasons to want to use
> system-specific images:
>
> 1) They're smaller. By default we're already generating a generic image
> for rescue purposes, so disk space isn't the concern here - we're
> largely looking at losing boot speed. As machines have got faster this
> is probably not a huge deal.

What about the on-going cost: downloading ~80M initramfs for each kernel update; systemd-analyze on NVMe says initrd time is  2.5s for a host-only ~25M initramfs. No-host-only initramfs is about 3x bigger. If the size to time relationship is linear, that's a chunk of extra time. Maybe there's a way to improve the read performance in the bootloader to compensate?

Some of the kernel and initramfs time hit comes from xz decompression. I wonder if zstd can also compensate? Getting zstd module built into the kernel to support zstd compressed initramfs is straightforward, but I vaguely recall something extra is needed to support zstd compressed kernels.


>
> 2) They contain machine-specific configuration. Some of this can be
> passed on the kernel command line instead (eg, the machine ID), but we'd
> need answers for the rest. I can think of a couple of solutions:
>
>  a) Stick the config in UEFI variables. It's small enough that we
>     wouldn't run out.
>  b) Extend grub to read some config files and synthesise an initramfs
>     image for them. If we measure the paths that those images use then
>     we don't need to worry about the contents as long as the tools that
>     read the config can't be subverted via that configuration.

Any expected hardware with TPM2 but without UEFI?

There's a systemd facility for extra boot params to contend with the arch specific COMMAND_LINE_SIZE limit. I forget what it is, maybe it uses efivars.


>
> 3) User customisation, such as including extra tooling. grub supports
> loading multiple initramfs images. Packages that right now install stuff
> in the initramfs could instead ship a prebuilt image that grub could
> append to the main initramfs. This would allow for things like
> overriding Plymouth themes, and we could ship the measurements for these
> pre-built images in order to allow them to be validated.

If the first initramfs contains systemd, could systemd start things in parallel while unpacking a second initramfs?

I take it you've found some liability with measuring a locally produced initramfs?


--
Chris Murphy
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux