From c8f460d77af6a530d226dae06cce0e462f13c82b Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Mon, 29 Jul 2024 15:41:51 +0200 Subject: [PATCH] kernel-install: Try some more initrd variants in 90-loaderentry.install On CentOS/Fedora, dracut is configured to write the initrd to /boot/initramfs-$KERNEL_VERSION...img so let's check for that as well if no initrds were supplied. --- src/kernel-install/90-loaderentry.install.in | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/kernel-install/90-loaderentry.install.in b/src/kernel-install/90-loaderentry.install.in index 4ef6aca169c1a..57aac6aae4757 100755 --- a/src/kernel-install/90-loaderentry.install.in +++ b/src/kernel-install/90-loaderentry.install.in @@ -205,8 +205,21 @@ mkdir -p "${LOADER_ENTRY%/*}" || { have_initrd=yes done - # Try "initrd", generated by dracut in its kernel-install hook, if no initrds were supplied - [ -z "$have_initrd" ] && [ -f "$ENTRY_DIR_ABS/initrd" ] && echo "initrd $ENTRY_DIR/initrd" + # Try a few variations that are generated by various initrd generators in their kernel-install hooks if + # no initrds were supplied. + + if [ -z "$have_initrd" ] && [ -f "$ENTRY_DIR_ABS/initrd" ]; then + echo "initrd $ENTRY_DIR/initrd" + have_initrd=yes + fi + + if [ -z "$have_initrd" ]; then + for initrd in "$BOOT_ROOT"/initramfs-"$KERNEL_VERSION"*.img; do + [ -f "$initrd" ] || continue + echo "initrd /${initrd##*/}" + have_initrd=yes + done + fi : } >"$LOADER_ENTRY" || { echo "Error: could not create loader entry '$LOADER_ENTRY'." >&2