]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
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)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 29 Jul 2024 16:57:43 +0000 (18:57 +0200)
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

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