diff options
Diffstat (limited to 'sys-boot/os-prober/files/os-prober-multiple-initrd.patch')
-rw-r--r-- | sys-boot/os-prober/files/os-prober-multiple-initrd.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/sys-boot/os-prober/files/os-prober-multiple-initrd.patch b/sys-boot/os-prober/files/os-prober-multiple-initrd.patch new file mode 100644 index 00000000..57c89e19 --- /dev/null +++ b/sys-boot/os-prober/files/os-prober-multiple-initrd.patch @@ -0,0 +1,32 @@ +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 +@@ -19,11 +19,11 @@ entry_result () { + # if path is not relative to subvolume make it relative + kernel=${kernel#${bsv}} + kernelfile=$kernel +- initrd=${initrd#${bsv}} ++ initrd=`echo $initrd | sed -e "s!^${bsv}!!" -e "s!\\(\\s\\)${bsv}!\\1!g"` + 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} ++ initrd=`echo $initrd | sed -e "s!\\(\\S\\+\\)!${bsv}\\1!g"` + fi + # assumed: rootsv != bootsv if rootsv isn't ancestor of bootsv + [ "$partition" != "$bootpart" -o "$rootsv" != "$bootsv" ] && kernelfile="/boot${kernelfile}" +@@ -105,10 +105,11 @@ parse_grub_menu () { + fi + ;; + initrd|initrdefi|initrd16) +- initrd="$(echo "$2" | sed 's/(.*)//')" ++ shift ++ initrd="$(echo "$@" | sed 's/(\S*)//g')" + # Initrd same. + if [ "$partition" != "$bootpart" -a "$type" != "btrfs" ]; then +- initrd="/boot$initrd" ++ initrd=`echo $initrd | sed -e 's!\(\S\+\)!/boot\1!g'` + fi + ;; + "}") |