[systemd-devel] Make systemd-localed modify the kernel commandline for the initrd keymap?
Colin Walters
walters at verbum.org
Mon Nov 25 22:22:57 UTC 2019
On Thu, Oct 31, 2019, at 12:26 PM, Lennart Poettering wrote:
> Well, what I proposed is a file. OSTree can cover files on disk, no?
Yes...we can try to figure out an extension to version them.
> I doubt on AWS you want to configure keymaps though, do you?
No, but there are similar server cases:
- iSCSI which apparently has quite nontrivial configuration files (things you wouldn't ergonomically do in the kernel cmdline) so they end up requiring regenerating the initramfs.
- Tang/NBDE https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Network-Bound_Disk_Encryption.html
And for OpenShift 4 we are aiming to support NBDE even in clouds like AWS for a few reasons; some customers don't want to 100% rely on EBS encryption, and supporting it everywhere makes our story for bare metal installation more consistent.
Finally another case just came up, which is enabling some real-time kernel tuning:
https://bugzilla.redhat.com/show_bug.cgi?id=1775917
Today tuned injects some bits into the initramfs for this - specifically we need to configure systemd in the initramfs for the `CPUAffinity`.
I've lately been thinking maybe we should just generalize this and introduce: /boot/etc
The initramfs then can mount /boot and read files from it (or just copy in over its own /etc).
One downside of this though is that it doesn't apply to PXE/NFS-root (diskless) scenarios. Those need either an overlay initramfs or kernel cmdline.
Though, I guess for CPUAffinity we really need this set up and readable before systemd even starts. Hmm.
So maybe we really need systemd.cpuaffinity= as a kernel argument - and in general, anything necessary for the kernel or systemd in the initramfs need to be kernel arguments. Anything after that could be /boot/etc or an overlay initramfs.
More information about the systemd-devel
mailing list