forked from pool/os-prober
Accepting request 309524 from Base:System
1 OBS-URL: https://build.opensuse.org/request/show/309524 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/os-prober?expand=0&rev=31
This commit is contained in:
commit
168cc1b1ad
61
Improve-btrfs-handling-on-os-probing-for-grub2.patch
Normal file
61
Improve-btrfs-handling-on-os-probing-for-grub2.patch
Normal file
@ -0,0 +1,61 @@
|
||||
From: Egbert Eich <eich@suse.de>
|
||||
Date: Fri May 29 08:55:21 2015 +0200
|
||||
Subject: Improve btrfs handling on os-probing for grub2
|
||||
Patch-mainline: never
|
||||
|
||||
References: bsc#892364
|
||||
Signed-off-by: Egbert Eich <eich@suse.com>
|
||||
|
||||
Currently probing of a grub2 config file is broken if
|
||||
the root/boot fs is btrfs. This is due to a patch picked
|
||||
from Fedora which attempts to determine the location of
|
||||
the kernel and probe for it.
|
||||
This code has meanwhile changed on Fedora, however the
|
||||
new version works no better than the old one.
|
||||
It is possible that this code works under very special
|
||||
circumstances of the Fedora system, however it is by no
|
||||
means valid.
|
||||
Our goal is to
|
||||
a. determine the location of the kernel in the mounted fs
|
||||
regardless whether the grub2 config specifies an absolute
|
||||
or relative path to the kernel file.
|
||||
b. Prepend the correct prefix if grub2_btrfs expects an
|
||||
absolute path (either because the current grub2 fs isn't
|
||||
btrfs or absolute path addressing is explicitely requested).
|
||||
c. Attempt to handle the location of the kernel file correctly
|
||||
if this lives on a separate btrfs subvolume.
|
||||
(Currently this only works if the path to this subvolume is
|
||||
identical to the fs path).
|
||||
|
||||
Signed-off-by: Egbert Eich <eich@suse.de>
|
||||
---
|
||||
linux-boot-probes/mounted/common/40grub2 | 16 +++++++++++++---
|
||||
1 file changed, 13 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/linux-boot-probes/mounted/common/40grub2 b/linux-boot-probes/mounted/common/40grub2
|
||||
index b548585..ccdbebb 100755
|
||||
--- a/linux-boot-probes/mounted/common/40grub2
|
||||
+++ b/linux-boot-probes/mounted/common/40grub2
|
||||
@@ -14,9 +14,19 @@ bootsv="$6"
|
||||
found_item=0
|
||||
|
||||
entry_result () {
|
||||
- if [ "x$type" = "xbtrfs" -a "$rootsv" = "$bootsv" ]; then
|
||||
- # trim off the leading subvol
|
||||
- kernelfile=$(echo "$kernel" | cut -d '/' -f 2- | cut -d '/' -f 2-)
|
||||
+ if [ "x$type" = "xbtrfs" ]; then
|
||||
+ bsv=${bootsv:+/}${bootsv}
|
||||
+ # if path is not relative to subvolume make it relative
|
||||
+ kernel=${kernel#${bsv}}
|
||||
+ kernelfile=$kernel
|
||||
+ initrd=${initrd#${bsv}}
|
||||
+ if [ "x$GRUB_FS" != "xbtrfs" -o "x${SUSE_BTRFS_SNAPSHOT_BOOTING}" != "xtrue" ]; then
|
||||
+ # absolute path needed: prepend subvolume if $kernel isn't empty
|
||||
+ kernel=${kernel:+${bsv}}${kernel}
|
||||
+ initrd=${initrd:+${bsv}}${initrd}
|
||||
+ fi
|
||||
+ # assumed: rootsv != bootsv if rootsv isn't ancestor of bootsv
|
||||
+ [ "$partition" != "$bootpart" -o "$rootsv" != "$bootsv" ] && kernelfile="/boot${kernelfile}"
|
||||
else
|
||||
kernelfile=$kernel
|
||||
fi
|
@ -1,13 +0,0 @@
|
||||
Index: os-prober/linux-boot-probes/mounted/common/40grub2
|
||||
===================================================================
|
||||
--- os-prober.orig/linux-boot-probes/mounted/common/40grub2
|
||||
+++ os-prober/linux-boot-probes/mounted/common/40grub2
|
||||
@@ -16,7 +16,7 @@ found_item=0
|
||||
entry_result () {
|
||||
if [ "x$type" = "xbtrfs" -a "$rootsv" = "$bootsv" ]; then
|
||||
# trim off the leading subvol
|
||||
- kernelfile=$(echo "$kernel" | cut -d '/' -f 2- | cut -d '/' -f 2-)
|
||||
+ kernelfile=$(echo "$kernel" | sed -e "s!^/${rootsv}/!!")
|
||||
else
|
||||
kernelfile=$kernel
|
||||
fi
|
@ -1,3 +1,16 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 1 07:16:32 UTC 2015 - mchang@suse.com
|
||||
|
||||
- Deleted os-prober-btrfsfix-trim-leading-subvol.patch: supersceded
|
||||
by Improve-btrfs-handling-on-os-probing-for-grub2.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 29 07:14:40 UTC 2015 - eich@suse.com
|
||||
|
||||
- Improve-btrfs-handling-on-os-probing-for-grub2.patch
|
||||
* Improve btrfs handling on os-probing for grub2 (bsc#892364)
|
||||
- Replaces: os-prober-btrfsfix-trim-leading-subvol.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 13 15:45:30 UTC 2015 - mchang@suse.com
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package os-prober
|
||||
#
|
||||
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -57,7 +57,7 @@ Patch15: os-prober-call-dmraid-once.patch
|
||||
# PATCH-FIX-OPENSUSE: fix os-prober misinterprets Windows 8 to be Vista (bsc#910654)
|
||||
Patch16: os-prober-grep-for-windows-bcd-file.patch
|
||||
# PATCH-FIX-SLE: fix os-prober fails to detect other SLES12 installation (bsc#892364)
|
||||
Patch17: os-prober-btrfsfix-trim-leading-subvol.patch
|
||||
Patch17: Improve-btrfs-handling-on-os-probing-for-grub2.patch
|
||||
Requires: /bin/grep
|
||||
Requires: /bin/sed
|
||||
Requires: /sbin/modprobe
|
||||
|
Loading…
Reference in New Issue
Block a user