On Mo, 04.07.22 09:30, Daniel P. Berrangé (berrange@redhat.com) wrote:
When going for multiple initrds the best approach is probably to simply split out the kernel modules into a version-specific initrd and store everything else in another, shared initrd.
In the approach Zbginiew and I are working on we intend to build a basic initrd into the kernel itself (i.e. in a unified kernel logic) and then optionally load additional initrd images that can be placed next to the kernel image and are picked up by the EFI stub (i.e. by the EFI code that runs as part of the kernel when it runs in EFI mode still, before we transition to Linux mode, i.e. where all the EFI file systems are still accessible), and are passed to kernel, measured and then very early on overlayed on top of the basic initrd image (i.e. in an immutable overlayfs stack).
In such an approach the basic initrd would be able to just boot 90% of the systems, and for the other 10% we'd just add a couple of extension images next to the kernel image, and that's it.
That sounds good. Given their pretty homogeneous hardware I would hope that 90% figure ought to be able to reach near 100% for virtual machines on the common hypervisors/clouds (KVM, Hyper-V, VMWare, AWS)
Yes, that would be the benchmark: the most common systems should be bootable with a single unified kernel images, and that of course includes all popular virtualizers.
Lennart
-- Lennart Poettering, Berlin