summaryrefslogtreecommitdiff
path: root/sys-kernel/dracut/files/dracut-060-grub-layout.patch
blob: 543efa1eef4774885836da7e74bc48719dfabc60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Ensures that the generated initrd is installed in the "new" way via the
staging area in the grub layout. This prevents accidentally creating
an UKI named initrd, and also ensures that BOOT_ROOT and
KERNEL_INSTALL_INITRD_GENERATOR are respected when the layout is set to grub.

Downstream only since the grub layout for using grub with systemd's
kernel-install is not supported by systemd upstream and therefore this
patch is unlikely to be accepted by dracut upstream.

diff --git a/install.d/50-dracut.install b/install.d/50-dracut.install
index 441414ac..a98449fe 100755
--- a/install.d/50-dracut.install
+++ b/install.d/50-dracut.install
@@ -38,6 +38,17 @@ elif [[ $KERNEL_INSTALL_LAYOUT == "bls" && -n $KERNEL_INSTALL_STAGING_AREA ]]; t
     else
         exit 0
     fi
+elif [[ $KERNEL_INSTALL_LAYOUT == "grub" || $KERNEL_INSTALL_LAYOUT == "compat" || $KERNEL_INSTALL_LAYOUT == "efistub" ]]; then
+    BOOT_DIR_ABS="$KERNEL_INSTALL_STAGING_AREA"
+    if [[ -z $KERNEL_INSTALL_UKI_GENERATOR || $KERNEL_INSTALL_UKI_GENERATOR == "dracut" ]]; then
+        IMAGE="uki.efi"
+        UEFI_OPTS="--uefi"
+    elif [[ -z $KERNEL_INSTALL_INITRD_GENERATOR || $KERNEL_INSTALL_INITRD_GENERATOR == "dracut" ]]; then
+        IMAGE="initrd"
+        UEFI_OPTS="--no-uefi"
+    else
+        exit 0
+    fi
 else
     # No layout information, use users --uefi/--no-uefi preference
     UEFI_OPTS=""