d4a4eb
From 9e8f172dc01f7e013bb5d302ef6c90e2dc6b30c8 Mon Sep 17 00:00:00 2001
d4a4eb
From: Jonathan Lebon <jonathan@jlebon.com>
d4a4eb
Date: Tue, 29 Oct 2019 16:54:10 -0400
d4a4eb
Subject: [PATCH] 01fips: trim off GRUB boot device from BOOT_IMAGE
d4a4eb
d4a4eb
E.g. in RHCOS, the `BOOT_IMAGE` from the cmdline is:
d4a4eb
d4a4eb
(hd0,gpt1)/ostree/rhcos-e493371e5ee8407889029ec979955a2b86fd7e3cae5a0591b9db1cd248d966e8/vmlinuz-4.18.0-146.el8.x86_64
d4a4eb
d4a4eb
Which of course is a GRUB thing, not an actual pathname we'll be able to
d4a4eb
resolve. In fact, we can simply scrap it off from the variable. Our code
d4a4eb
is already able to handle both cases: whether the device refers to a
d4a4eb
separate boot partition, or just the root filesystem with a regular
d4a4eb
`/boot` directory.
d4a4eb
---
d4a4eb
 modules.d/01fips/fips.sh | 4 ++++
d4a4eb
 1 file changed, 4 insertions(+)
d4a4eb
d4a4eb
diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh
d4a4eb
index de2755b0..559952ca 100755
d4a4eb
--- a/modules.d/01fips/fips.sh
d4a4eb
+++ b/modules.d/01fips/fips.sh
d4a4eb
@@ -113,6 +113,10 @@ do_fips()
d4a4eb
         do_rhevh_check /run/initramfs/live/isolinux/vmlinuz0 || return 1
d4a4eb
     else
d4a4eb
         BOOT_IMAGE="$(getarg BOOT_IMAGE)"
d4a4eb
+
d4a4eb
+        # Trim off any leading GRUB boot device (e.g. ($root) )
d4a4eb
+        BOOT_IMAGE="$(echo "${BOOT_IMAGE}" | sed 's/^(.*)//')"
d4a4eb
+
d4a4eb
         BOOT_IMAGE_NAME="${BOOT_IMAGE##*/}"
d4a4eb
         BOOT_IMAGE_PATH="${BOOT_IMAGE%${BOOT_IMAGE_NAME}}"
d4a4eb
 
d4a4eb