[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: