os-prober/os-prober-1.49-grub2-mount.patch
Michael Chang f4287cc9b1 Accepting request 179592 from home:arvidjaar:grub2-next
Companion to new grub2. Probably should not be accepted standalone,
as it has at least one small patch that depends on new code in grub2.

OBS-URL: https://build.opensuse.org/request/show/179592
OBS-URL: https://build.opensuse.org/package/show/Base:System/os-prober?expand=0&rev=27
2013-06-19 02:22:25 +00:00

82 lines
3.2 KiB
Diff

From: Andrey Borzenkov <arvidjaar@gmail.com>
Subject: replace grub-mount with grub2-mount everywhere
References: bnc#799457, bnc#767272
We use grub2-mount, not grub-mount. As shown in bnc#799457,
grub2-mount may access filesystem even when kernel driver
will refuse it. os-prober makes devices read-only to prevent
accidental damage, so kernel driver fails if log replay is needed
but cannot be performed.
This may likely fix bnc#767272
Index: os-prober-1.57/os-probes/init/common/10filesystems
===================================================================
--- os-prober-1.57.orig/os-probes/init/common/10filesystems
+++ os-prober-1.57/os-probes/init/common/10filesystems
@@ -3,7 +3,7 @@
set +e # ignore errors from modprobe
FILESYSTEMS='ext2 ext3 ext4 reiserfs xfs jfs msdos vfat ntfs minix hfs hfsplus qnx4 ufs btrfs'
-# fuse is needed to make grub-mount work.
+# fuse is needed to make grub2-mount work.
FILESYSTEMS="$FILESYSTEMS fuse"
# The Ubuntu kernel udebs put a number of filesystem modules in
# fs-{core,secondary}-modules. It's fairly cheap to check for these too.
Index: os-prober-1.57/common.sh
===================================================================
--- os-prober-1.57.orig/common.sh
+++ os-prober-1.57/common.sh
@@ -259,8 +259,8 @@ linux_mount_boot () {
debug "found boot partition $1 for linux system on $partition, but cannot map to existing device"
else
debug "found boot partition $bootpart for linux system on $partition"
- if type grub-mount >/dev/null 2>&1 && \
- grub-mount "$boottomnt" "$tmpmnt/boot" 2>/dev/null; then
+ if type grub2-mount >/dev/null 2>&1 && \
+ grub2-mount "$boottomnt" "$tmpmnt/boot" 2>/dev/null; then
mounted=1
else
ro_partition "$boottomnt"
Index: os-prober-1.57/linux-boot-probes/common/50mounted-tests
===================================================================
--- os-prober-1.57.orig/linux-boot-probes/common/50mounted-tests
+++ os-prober-1.57/linux-boot-probes/common/50mounted-tests
@@ -34,11 +34,11 @@ if [ ! -d "$tmpmnt" ]; then
fi
mounted=
-if type grub-mount >/dev/null 2>&1 && \
- type grub-probe >/dev/null 2>&1 && \
- grub-mount "$partition" "$tmpmnt" 2>/dev/null; then
+if type grub2-mount >/dev/null 2>&1 && \
+ type grub2-probe >/dev/null 2>&1 && \
+ grub2-mount "$partition" "$tmpmnt" 2>/dev/null; then
mounted=1
- type="$(grub-probe -d "$partition" -t fs)"
+ type="$(grub2-probe -d "$partition" -t fs)"
[ "$type" ] || type=fuseblk
else
ro_partition "$partition"
Index: os-prober-1.57/os-probes/common/50mounted-tests
===================================================================
--- os-prober-1.57.orig/os-probes/common/50mounted-tests
+++ os-prober-1.57/os-probes/common/50mounted-tests
@@ -49,11 +49,11 @@ if [ ! -d "$tmpmnt" ]; then
fi
mounted=
-if type grub-mount >/dev/null 2>&1 && \
- type grub-probe >/dev/null 2>&1 && \
- grub-mount "$partition" "$tmpmnt" 2>/dev/null; then
+if type grub2-mount >/dev/null 2>&1 && \
+ type grub2-probe >/dev/null 2>&1 && \
+ grub2-mount "$partition" "$tmpmnt" 2>/dev/null; then
mounted=1
- type="$(grub-probe -d "$partition" -t fs)" || true
+ type="$(grub2-probe -d "$partition" -t fs)" || true
if [ "$type" ]; then
debug "mounted using GRUB $type filesystem driver"
else