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 via email to