kernel-install: Try some more initrd variants in 90-loaderentry.install
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 29 Jul 2024 13:41:51 +0000 (15:41 +0200)
committerLuca Boccassi <bluca@debian.org>
Thu, 15 Aug 2024 12:08:37 +0000 (13:08 +0100)
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.

(cherry picked from commit b56920e36c5692c0dde701bfb48330653a9c62c9)

src/kernel-install/90-loaderentry.install.in

index 79427684cc5c96e4481345c30f06ff92eedad533..c9ba111393f3af79e530152e29db7f51a96aea89 100755 (executable)
@@ -207,8 +207,18 @@ 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" ] && [ -f "$BOOT_ROOT/initramfs-$KERNEL_VERSION.img" ]; then
+        echo "initrd     /initramfs-$KERNEL_VERSION.img"
+        have_initrd=yes
+    fi
     :
 } >"$LOADER_ENTRY" || {
     echo "Error: could not create loader entry '$LOADER_ENTRY'." >&2