Import from CS git

This commit is contained in:
eabdullin 2025-02-04 09:15:02 +00:00
parent ddf320941d
commit a1dd634b03
4 changed files with 120 additions and 1 deletions

View File

@ -0,0 +1,53 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Leo Sandoval <lsandova@redhat.com>
Date: Thu, 27 Jun 2024 10:53:32 -0600
Subject: [PATCH] 90fallback: include possible kernel parameters from grub's
default file
Probed filesystems may include the GRUB's default
file ($mpoint/etc/default/grub) so it desirable to source it and get
and place either GRUB_CMDLINE_LINUX and/or GRUB_CMDLINE_LINUX_DEFAULT
on the kernel parameters field, ultimately tools like grub2-mkconfig
makes use of it and create menuentries with kernel parameters.
Signed-off-by: Leo Sandoval <lsandova@redhat.com>
---
linux-boot-probes/mounted/common/90fallback | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/linux-boot-probes/mounted/common/90fallback b/linux-boot-probes/mounted/common/90fallback
index 7e40d15..cad7645 100755
--- a/linux-boot-probes/mounted/common/90fallback
+++ b/linux-boot-probes/mounted/common/90fallback
@@ -10,6 +10,22 @@ mpoint="$3"
type="$4"
mappedpartition=$(mapdevfs "$partition" 2>/dev/null) || mappedpartition="$partition"
+kernparams="root=$mappedpartition"
+
+# In case there is $mpoint/etc/default/grub, source it and take into account
+# relevant command line variables. This function must be run inside a subshell
+# otherwise grub default variable may be overriden
+get_cmdline_linux_params()
+{
+ local mpoint_sysconfdir="$mpoint/etc"
+ if test -f ${mpoint_sysconfdir}/default/grub ; then
+ unset GRUB_CMDLINE_LINUX GRUB_CMDLINE_LINUX_DEFAULT
+ . ${mpoint_sysconfdir}/default/grub
+ echo "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
+ fi
+}
+
+kernparams="$(echo $kernparams $(get_cmdline_linux_params) | sed 's/[[:space:]]\+$//')"
exitcode=1
for kernpat in /vmlinuz /vmlinux /boot/vmlinuz /boot/vmlinux "/boot/vmlinuz*" \
@@ -38,7 +54,7 @@ for kernpat in /vmlinuz /vmlinux /boot/vmlinuz /boot/vmlinux "/boot/vmlinuz*" \
for initrd in $(eval ls "$initrdname" "$initrdname1" "$initrdname2" "$initrdname3" "$initrdname4" 2>/dev/null); do
if [ "$initrd" != "$kernfile" ] && [ -f "$initrd" ] && [ ! -L "$initrd" ]; then
initrd=$(echo "$initrd" | sed "s!^$mpoint!!")
- result "$partition:$kernbootpart::$kernbasefile:$initrd:root=$mappedpartition"
+ result "$partition:$kernbootpart::$kernbasefile:$initrd:$kernparams"
exitcode=0
foundinitrd=1
fi

View File

@ -0,0 +1,27 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Leo Sandoval <lsandova@redhat.com>
Date: Thu, 27 Jun 2024 11:31:38 -0600
Subject: [PATCH] common.sh: do not resolve symbolic link on mapped device
filesystems
/dev/dm-* devices may change from boot to boot so better to use the
symlink instead of the resolved file name
Signed-off-by: Leo Sandoval <lsandova@redhat.com>
---
common.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/common.sh b/common.sh
index a24286a..f0ebfb3 100644
--- a/common.sh
+++ b/common.sh
@@ -92,7 +92,7 @@ export fd_result # so subshells inherit current value by default
# shim to make it easier to use os-prober outside d-i
if ! type mapdevfs >/dev/null 2>&1; then
mapdevfs () {
- readlink -f "$1"
+ echo "$1"
}
fi

View File

@ -0,0 +1,27 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Leo Sandoval <lsandova@redhat.com>
Date: Thu, 13 Jun 2024 17:05:44 -0600
Subject: [PATCH] 50mounted-tests: trap do_unmount function on errors
Traps the do_unmount function on error, unmounting any previous
partition in case of error and not letting the partition to be included
as boot entry when called on behalf of grub2-mkconfig.
Signed-off-by: Leo Sandoval <lsandova@redhat.com>
---
linux-boot-probes/common/50mounted-tests | 2 ++
1 file changed, 2 insertions(+)
diff --git a/linux-boot-probes/common/50mounted-tests b/linux-boot-probes/common/50mounted-tests
index ad68874..63b2174 100755
--- a/linux-boot-probes/common/50mounted-tests
+++ b/linux-boot-probes/common/50mounted-tests
@@ -13,6 +13,8 @@ do_unmount() {
rmdir "$tmpmnt" || true
}
+trap do_unmount ERR
+
partition="$1"
types="$(fs_type "$partition")"

View File

@ -1,6 +1,6 @@
Name: os-prober
Version: 1.77
Release: 10%{?dist}
Release: 12%{?dist}
Summary: Probes disks on the system for installed operating systems
# For more information about licensing, see copyright file.
@ -21,6 +21,9 @@ Patch8: os-prober-grub2-parsefix.patch
Patch9: os-prober-grepfix.patch
Patch10: os-prober-gentoo-fix.patch
Patch11: os-prober-grub2-mount-workaround.patch
Patch12: os-prober-90fallback-include-possible-kernel-parameters-from-g.patch
Patch13: os-prober-common.sh-do-not-resolve-symbolic-link-on-mapped-dev.patch
Patch14: os-prober-trap_unmount.patch
Requires: udev coreutils util-linux
Requires: grep /bin/sed /sbin/modprobe
@ -90,6 +93,15 @@ fi
%{_var}/lib/%{name}
%changelog
* Mon Sep 9 2024 Leo Sandoval <lsandova@redhat.com> - 1.77.12
- 50mounted-tests: trap do_unmount function on errors
- Resolves: RHEL-41244
* Mon Aug 19 2024 Leo Sandoval <lsandova@redhat.com> - 1.77-11
- 90fallback: include possible kernel parameters from grub's default file
- common.sh: do not resolve symbolic link on mapped device filesystems
- Resolves: #RHEL-44705
* Mon Feb 27 2023 Robbie Harwood <rharwood@redhat.com> - 1.77-10
- Fix inheritance of environment build flags
- Resolves: #2144572