Bug#699839: linux-boot-prober doesn't return original boot partition name in fstab
Package: os-prober
Version: 1.57
Tags: patch
linux-boot-prober resolves symbolic links for partition names in
/etc/fstab, and returns that as the partition name. But it is usually
desirable to return the original name in fstab. Additionally, this seems
to be problematic for LVM volumes, since in my system, grub-probe
doesn't recognize /dev/dm-X names and so the generated grub.cfg doesn't
include directives for setting root device.
The attached patch fixes the problem.
diff -up os-prober-1.57/common.sh.bootpartnamefix os-prober-1.57/common.sh
--- os-prober-1.57/common.sh.bootpartnamefix 2013-02-03 23:56:39.585511891 +0330
+++ os-prober-1.57/common.sh 2013-02-05 19:42:14.652151904 +0330
@@ -246,7 +246,7 @@ linux_mount_boot () {
if [ "$bindfrom" != "$tmpmnt/boot" ]; then
if mount --bind "$bindfrom" "$tmpmnt/boot"; then
mounted=1
- bootpart="$1"
+ bootpart="$tmppart"
else
debug "failed to bind-mount $bindfrom onto $tmpmnt/boot"
fi
@@ -254,6 +254,15 @@ linux_mount_boot () {
fi
if [ "$mounted" ]; then
:
+ elif [ -e "$tmppart" ]; then
+ bootpart="$tmppart"
+ boottomnt="$tmppart"
+ elif [ -e "$tmpmnt/$tmppart" ]; then
+ bootpart="$tmppart"
+ boottomnt="$tmpmnt/$tmppart"
+ elif [ -e "/target/$tmppart" ]; then
+ bootpart="$tmppart"
+ boottomnt="/target/$tmppart"
elif [ -e "$1" ]; then
bootpart="$1"
boottomnt="$1"
Reply to: