Accepting request 211328 from home:michael-chang:12.3:bnc:846003
- add os-prober-fix-btrfs-subvol-mounted-tests.patch * move btrfs subvolume mounted tests after regualr rootfs tree tests to make sure that root and subvolume fs tree are tested. * the test order is just a preference, assuming that distribution are installed to root fs tree more likely than to a subvolume. OBS-URL: https://build.opensuse.org/request/show/211328 OBS-URL: https://build.opensuse.org/package/show/Base:System/os-prober?expand=0&rev=35
This commit is contained in:
parent
55931a4bef
commit
639c2fee1c
115
os-prober-fix-btrfs-subvol-mounted-tests.patch
Normal file
115
os-prober-fix-btrfs-subvol-mounted-tests.patch
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
Index: os-prober-1.61/os-probes/common/50mounted-tests
|
||||||
|
===================================================================
|
||||||
|
--- os-prober-1.61.orig/os-probes/common/50mounted-tests
|
||||||
|
+++ os-prober-1.61/os-probes/common/50mounted-tests
|
||||||
|
@@ -56,10 +56,54 @@ fi
|
||||||
|
|
||||||
|
mounted=
|
||||||
|
|
||||||
|
-# all btrfs processing here. Handle both unmounted and
|
||||||
|
-# mounted subvolumes.
|
||||||
|
if [ "$types" = btrfs ]; then
|
||||||
|
partition="$BTRFSDEV"
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+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="$(grub2-probe -d "$partition" -t fs)" || true
|
||||||
|
+ if [ "$type" ]; then
|
||||||
|
+ debug "mounted using GRUB $type filesystem driver"
|
||||||
|
+ else
|
||||||
|
+ debug "mounted using GRUB, but unknown filesystem?"
|
||||||
|
+ type=fuseblk
|
||||||
|
+ fi
|
||||||
|
+else
|
||||||
|
+ ro_partition "$partition"
|
||||||
|
+ for type in $types; do
|
||||||
|
+ if mount -o ro -t "$type" "$partition" "$tmpmnt" 2>/dev/null; then
|
||||||
|
+ debug "mounted as $type filesystem"
|
||||||
|
+ mounted=1
|
||||||
|
+ break
|
||||||
|
+ fi
|
||||||
|
+ done
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+if [ "$mounted" ]; then
|
||||||
|
+ for test in /usr/lib/os-probes/mounted/*; do
|
||||||
|
+ debug "running subtest $test"
|
||||||
|
+ if [ -f "$test" ] && [ -x "$test" ]; then
|
||||||
|
+ if "$test" "$partition" "$tmpmnt" "$type"; then
|
||||||
|
+ debug "os found by subtest $test"
|
||||||
|
+ if ! umount "$tmpmnt"; then
|
||||||
|
+ warn "failed to umount $tmpmnt"
|
||||||
|
+ fi
|
||||||
|
+ rmdir "$tmpmnt" || true
|
||||||
|
+ exit 0
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ done
|
||||||
|
+ if ! umount "$tmpmnt"; then
|
||||||
|
+ warn "failed to umount $tmpmnt"
|
||||||
|
+ fi
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+# all btrfs subvol processing here. Handle both unmounted and
|
||||||
|
+# mounted subvolumes.
|
||||||
|
+if [ "$types" = btrfs ]; then
|
||||||
|
debug "begin btrfs processing for $UUID"
|
||||||
|
# note that the btrfs volume must not be mounted ro
|
||||||
|
if mount -t btrfs -U "$UUID" "$tmpmnt" 2>/dev/null; then
|
||||||
|
@@ -117,52 +161,9 @@ if [ "$types" = btrfs ]; then
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
- rmdir "$tmpmnt" || true
|
||||||
|
if [ "$found" ]; then
|
||||||
|
+ rmdir "$tmpmnt" || true
|
||||||
|
exit 0
|
||||||
|
- else
|
||||||
|
- exit 1
|
||||||
|
- fi
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-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="$(grub2-probe -d "$partition" -t fs)" || true
|
||||||
|
- if [ "$type" ]; then
|
||||||
|
- debug "mounted using GRUB $type filesystem driver"
|
||||||
|
- else
|
||||||
|
- debug "mounted using GRUB, but unknown filesystem?"
|
||||||
|
- type=fuseblk
|
||||||
|
- fi
|
||||||
|
-else
|
||||||
|
- ro_partition "$partition"
|
||||||
|
- for type in $types; do
|
||||||
|
- if mount -o ro -t "$type" "$partition" "$tmpmnt" 2>/dev/null; then
|
||||||
|
- debug "mounted as $type filesystem"
|
||||||
|
- mounted=1
|
||||||
|
- break
|
||||||
|
- fi
|
||||||
|
- done
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-if [ "$mounted" ]; then
|
||||||
|
- for test in /usr/lib/os-probes/mounted/*; do
|
||||||
|
- debug "running subtest $test"
|
||||||
|
- if [ -f "$test" ] && [ -x "$test" ]; then
|
||||||
|
- if "$test" "$partition" "$tmpmnt" "$type"; then
|
||||||
|
- debug "os found by subtest $test"
|
||||||
|
- if ! umount "$tmpmnt"; then
|
||||||
|
- warn "failed to umount $tmpmnt"
|
||||||
|
- fi
|
||||||
|
- rmdir "$tmpmnt" || true
|
||||||
|
- exit 0
|
||||||
|
- fi
|
||||||
|
- fi
|
||||||
|
- done
|
||||||
|
- if ! umount "$tmpmnt"; then
|
||||||
|
- warn "failed to umount $tmpmnt"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
@ -1,3 +1,12 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 18 04:16:03 UTC 2013 - mchang@suse.com
|
||||||
|
|
||||||
|
- add os-prober-fix-btrfs-subvol-mounted-tests.patch
|
||||||
|
* move btrfs subvolume mounted tests after regualr rootfs tree
|
||||||
|
tests to make sure that root and subvolume fs tree are tested.
|
||||||
|
* the test order is just a preference, assuming that distribution
|
||||||
|
are installed to root fs tree more likely than to a subvolume.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Dec 6 09:21:55 UTC 2013 - mchang@suse.com
|
Fri Dec 6 09:21:55 UTC 2013 - mchang@suse.com
|
||||||
|
|
||||||
|
@ -49,6 +49,8 @@ Patch10: os-prober-EFI-openSUSEfy.patch
|
|||||||
Patch11: os-prober-accept-ESP-on-IMSM.patch
|
Patch11: os-prober-accept-ESP-on-IMSM.patch
|
||||||
# PATCH-FIX-OPENSUSE: don't modprobe all file system modules and don't test mount on unknown partition (bnc#851722)
|
# PATCH-FIX-OPENSUSE: don't modprobe all file system modules and don't test mount on unknown partition (bnc#851722)
|
||||||
Patch12: os-prober-dont-load-all-fs-module-and-dont-test-mount.patch
|
Patch12: os-prober-dont-load-all-fs-module-and-dont-test-mount.patch
|
||||||
|
# PATCH-FIX-OPENSUSE: fix os-prober entries for distro on btrfs root-fs not created (bnc#846003)
|
||||||
|
Patch13: os-prober-fix-btrfs-subvol-mounted-tests.patch
|
||||||
|
|
||||||
Requires: /bin/grep
|
Requires: /bin/grep
|
||||||
Requires: /bin/sed
|
Requires: /bin/sed
|
||||||
@ -79,6 +81,7 @@ cp %SOURCE1 .
|
|||||||
%patch10 -p1
|
%patch10 -p1
|
||||||
%patch11 -p1
|
%patch11 -p1
|
||||||
%patch12 -p1
|
%patch12 -p1
|
||||||
|
%patch13 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
make %{?_smp_mflags} CC="%__cc" CFLAGS="%{optflags}"
|
make %{?_smp_mflags} CC="%__cc" CFLAGS="%{optflags}"
|
||||||
|
Loading…
Reference in New Issue
Block a user