From: Zbigniew Jędrzejewski-Szmek Date: Thu, 19 May 2022 13:34:32 +0000 (+0200) Subject: kernel-install: fix detection of entry-token if $BOOT_ROOT is configured X-Git-Tag: v251~3^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=eb45cf97a9740055515ccbcab8231b33ea0df237;p=thirdparty%2Fsystemd.git kernel-install: fix detection of entry-token if $BOOT_ROOT is configured If $BOOT_ROOT is specified, but entry-token not, we'd skip the detection altogether, effectively defaulting to entry-token=machine-id. The case where $BOOT_ROOT was not specied, but entry-token was configured was handled correctly. This patch makes the handling of both symmetrical, i.e. will only set what wasn't configured. --- diff --git a/src/kernel-install/kernel-install.in b/src/kernel-install/kernel-install.in index 8ed9bfbb33c..9fa12f6fe81 100755 --- a/src/kernel-install/kernel-install.in +++ b/src/kernel-install/kernel-install.in @@ -170,11 +170,18 @@ fi # $ENTRY_TOKEN can be any string that fits into a VFAT filename, though # typically is just the machine ID. -[ -z "$BOOT_ROOT" ] && for suff in $ENTRY_TOKEN_SEARCH; do - for pref in "/efi" "/boot" "/boot/efi"; do +if [ -n "$BOOT_ROOT" ]; then + # If this was already configured, don't try to guess + BOOT_ROOT_SEARCH="$BOOT_ROOT" +else + BOOT_ROOT_SEARCH="/efi /boot /boot/efi" +fi + +for suff in $ENTRY_TOKEN_SEARCH; do + for pref in $BOOT_ROOT_SEARCH; do if [ -d "$pref/$suff" ]; then - BOOT_ROOT="$pref" - ENTRY_TOKEN="$suff" + [ -z "$BOOT_ROOT" ] && BOOT_ROOT="$pref" + [ -z "$ENTRY_TOKEN" ] && ENTRY_TOKEN="$suff" [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \ echo "$pref/$suff exists, using BOOT_ROOT=$BOOT_ROOT, ENTRY_TOKEN=$ENTRY_TOKEN"