You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.5 KiB
59 lines
2.5 KiB
From 5eb855bddaf8270e7274132ded0e36325d8ffbbe Mon Sep 17 00:00:00 2001 |
|
From: Lennart Poettering <lennart@poettering.net> |
|
Date: Wed, 9 Feb 2022 14:44:48 +0100 |
|
Subject: [PATCH] kernel-install: only generate systemd.boot_id= in kernel |
|
command line if used for naming the boot loader spec files/dirs |
|
|
|
Now that we can distinguish the naming of the boot loader spec |
|
dirs/files and the machine ID let's tweak the logic for suffixing the |
|
kernel cmdline with systemd.boot_id=: let's only do that when we |
|
actually need the boot ID for naming these dirs/files. If we don't, |
|
let's not bother. |
|
|
|
This should be beneficial for "golden" images that shall not carry any |
|
machine IDs at all, i.e acquire their identity only once the final |
|
userspace is actually reached. |
|
|
|
(cherry picked from commit 953b61004c37948dcd897265b56c1613bc73b9f9) |
|
|
|
Related: #2065061 |
|
--- |
|
src/kernel-install/90-loaderentry.install | 18 +++++++++++++----- |
|
1 file changed, 13 insertions(+), 5 deletions(-) |
|
|
|
diff --git a/src/kernel-install/90-loaderentry.install b/src/kernel-install/90-loaderentry.install |
|
index 46261a2c11..c1d69aa824 100644 |
|
--- a/src/kernel-install/90-loaderentry.install |
|
+++ b/src/kernel-install/90-loaderentry.install |
|
@@ -70,10 +70,15 @@ else |
|
BOOT_OPTIONS="$(tr -s "$IFS" '\n' </proc/cmdline | grep -ve '^BOOT_IMAGE=' -e '^initrd=' | tr '\n' ' ')" |
|
fi |
|
|
|
-# Suffix with the machine ID we use, so that the machine ID remains stable, |
|
-# even during factory reset, in the initrd (where the system's machine ID is |
|
-# not directly accessible yet), and if the root file system is volatile. |
|
-BOOT_OPTIONS="${BOOT_OPTIONS% } systemd.machine_id=$MACHINE_ID" |
|
+BOOT_OPTIONS="${BOOT_OPTIONS% }" |
|
+ |
|
+# If the boot entries are named after the machine ID, then suffix the kernel |
|
+# command line with the machine ID we use, so that the machine ID remains |
|
+# stable, even during factory reset, in the initrd (where the system's machine |
|
+# ID is not directly accessible yet), and if the root file system is volatile. |
|
+if [ "$ENTRY_TOKEN" = "$MACHINE_ID" ]; then |
|
+ BOOT_OPTIONS="$BOOT_OPTIONS systemd.machine_id=$MACHINE_ID" |
|
+fi |
|
|
|
if [ -r /etc/kernel/tries ]; then |
|
read -r TRIES </etc/kernel/tries |
|
@@ -121,7 +126,10 @@ mkdir -p "${LOADER_ENTRY%/*}" || { |
|
{ |
|
echo "title $PRETTY_NAME" |
|
echo "version $KERNEL_VERSION" |
|
- echo "machine-id $MACHINE_ID" |
|
+ if [ "$ENTRY_TOKEN" = "$MACHINE_ID" ]; then |
|
+ # See similar logic above for the systemd.machine_id= kernel command line option |
|
+ echo "machine-id $MACHINE_ID" |
|
+ fi |
|
echo "options $BOOT_OPTIONS" |
|
echo "linux $ENTRY_DIR/linux" |
|
|
|
|