kernel-install: don't try to persist used machine ID locally
authorLennart Poettering <lennart@poettering.net>
Wed, 9 Feb 2022 12:59:36 +0000 (13:59 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 11 Mar 2022 10:34:34 +0000 (11:34 +0100)
commit11ce3ea2f2219ab9c0700bcf7f8ed4312d80e937
treee4788f7d79c7b50b6d4d97541c36480cfc344c65
parent15e152acd1322f641d7948c6e1db23c7752d79ab
kernel-install: don't try to persist used machine ID locally

This reworks the how machine ID used by the boot loader spec snippet
generation logic. Instead of persisting it automatically to /etc/ we'll
append it via systemd.machined_id= to the kernel command line, and thus
persist it in the generated boot loader spec snippets instead. This has
nice benefits:

  1. We do not collide with read-only root
  2. The machine ID remains stable across factory reset, so that we can
     safely recognize the path in $BOOT we drop our kernel images in
     again, i.e. kernel updates will work correctly and safely across
     kernel factory resets.
  3. Previously regular systems had different machine IDs while in
     initrd and after booting into the host system. With this change
     they will now have the same.

This then drops implicit persisting of KERNEL_INSTALL_MACHINE_ID, as its
unnecessary then. The field is still honoured though, for compat
reasons.

This also drops the "Default" fallback previously used, as it actually
is without effect, the randomized ID generation already took precedence
in all cases. This means $MACHNE_ID/KERNEL_INSTALL_MACHINE_ID are now
guaranteed to look like a proper machine ID, which is useful for us,
given you need it that way to be able to pass it to the
systemd.machine_id= kernel command line option.
src/kernel-install/90-loaderentry.install
src/kernel-install/kernel-install