From 3b726150c965c46097c057104cf9a59aeaa9ed7b Mon Sep 17 00:00:00 2001 From: Nicolas Frayer Date: Fri, 6 Jun 2025 15:02:18 +0200 Subject: [PATCH] osdep/linux/getroot: Detect DDF container similar to IMSM Resolves: #RHEL-44336 Signed-off-by: Nicolas Frayer --- ...oot-Detect-DDF-container-similar-to-.patch | 86 +++++++++++++++++++ grub.patches | 3 +- grub2.spec | 6 +- 3 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 0479-osdep-linux-getroot-Detect-DDF-container-similar-to-.patch diff --git a/0479-osdep-linux-getroot-Detect-DDF-container-similar-to-.patch b/0479-osdep-linux-getroot-Detect-DDF-container-similar-to-.patch new file mode 100644 index 0000000..07d7d29 --- /dev/null +++ b/0479-osdep-linux-getroot-Detect-DDF-container-similar-to-.patch @@ -0,0 +1,86 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Renaud=20M=C3=A9trich?= +Date: Thu, 24 Apr 2025 11:43:28 +0200 +Subject: [PATCH] osdep/linux/getroot: Detect DDF container similar to IMSM +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Similarly to Intel IMSM, there are BIOS and UEFI implementations that +support DDF containers natively. + +DDF and IMSM are very similar in handling, especially these should not +be considered as RAID abstraction. This fixes the requirement of having +a device map when probing DDF containers. + +Fixes: https://issues.redhat.com/browse/RHEL-44336 + +Signed-off-by: Renaud Métrich +Reviewed-by: Daniel Kiper +--- + grub-core/osdep/linux/getroot.c | 19 +++++++++++++------ + 1 file changed, 13 insertions(+), 6 deletions(-) + +diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c +index 893527a..7430391 100644 +--- a/grub-core/osdep/linux/getroot.c ++++ b/grub-core/osdep/linux/getroot.c +@@ -131,7 +131,7 @@ struct btrfs_ioctl_search_args { + struct btrfs_ioctl_fs_info_args) + + static int +-grub_util_is_imsm (const char *os_dev); ++grub_util_is_imsm_or_ddf (const char *os_dev); + + + #define ESCAPED_PATH_MAX (4 * PATH_MAX) +@@ -762,10 +762,10 @@ out: + } + + static int +-grub_util_is_imsm (const char *os_dev) ++grub_util_is_imsm_or_ddf (const char *os_dev) + { + int retry; +- int is_imsm = 0; ++ int is_imsm_or_ddf = 0; + int container_seen = 0; + const char *dev = os_dev; + +@@ -826,10 +826,17 @@ grub_util_is_imsm (const char *os_dev) + if (strncmp (buf, "MD_METADATA=imsm", + sizeof ("MD_METADATA=imsm") - 1) == 0) + { +- is_imsm = 1; ++ is_imsm_or_ddf = 1; + grub_util_info ("%s is imsm", dev); + break; + } ++ if (strncmp (buf, "MD_METADATA=ddf", ++ sizeof ("MD_METADATA=ddf") - 1) == 0) ++ { ++ is_imsm_or_ddf = 1; ++ grub_util_info ("%s is ddf", dev); ++ break; ++ } + } + + free (buf); +@@ -840,7 +847,7 @@ grub_util_is_imsm (const char *os_dev) + + if (dev != os_dev) + free ((void *) dev); +- return is_imsm; ++ return is_imsm_or_ddf; + } + + char * +@@ -1205,7 +1212,7 @@ grub_util_get_dev_abstraction_os (const char *os_dev) + + /* Check for RAID. */ + if (!strncmp (os_dev, "/dev/md", 7) && ! grub_util_device_is_mapped (os_dev) +- && !grub_util_is_imsm (os_dev)) ++ && !grub_util_is_imsm_or_ddf (os_dev)) + return GRUB_DEV_ABSTRACTION_RAID; + return GRUB_DEV_ABSTRACTION_NONE; + } diff --git a/grub.patches b/grub.patches index adf9114..0d69e5d 100644 --- a/grub.patches +++ b/grub.patches @@ -474,4 +474,5 @@ Patch0474: 0474-appendedsig-The-grub-command-s-trusted-and-distruste.patch Patch0475: 0475-appendedsig-documentation.patch Patch0476: 0476-efi-Add-efitextmode-command-for-getting-setting-the-.patch Patch0477: 0477-10_linux.in-escape-kernel-option-characters-properly.patch -Patch0478: 0478-blscfg-check-if-variable-is-escaped-before-consideri.patch \ No newline at end of file +Patch0478: 0478-blscfg-check-if-variable-is-escaped-before-consideri.patch +Patch0479: 0479-osdep-linux-getroot-Detect-DDF-container-similar-to-.patch diff --git a/grub2.spec b/grub2.spec index 71e47b4..2fedb03 100644 --- a/grub2.spec +++ b/grub2.spec @@ -16,7 +16,7 @@ Name: grub2 Epoch: 1 Version: 2.06 -Release: 109%{?dist} +Release: 110%{?dist} Summary: Bootloader with support for Linux, Multiboot and more License: GPLv3+ URL: http://www.gnu.org/software/grub/ @@ -547,6 +547,10 @@ mv ${EFI_HOME}/grub.cfg.stb ${EFI_HOME}/grub.cfg %endif %changelog +* Fri Jun 6 2025 Nicolas Frayer - 2.06-110 +- osdep/linux/getroot: Detect DDF container similar to IMSM +- Resolves: #RHEL-44336 + * Mon Jun 2 2025 Leo Sandoval 2.06-109 - Handle special kernel parameter characters properly - Resolves: #RHEL-64297