SVN: geninitrd/trunk: mod-lvm.sh tests/lvmroot.sh

glen glen at pld-linux.org
Tue Jan 12 11:11:39 CET 2010


Author: glen
Date: Tue Jan 12 11:11:38 2010
New Revision: 11106

Modified:
   geninitrd/trunk/mod-lvm.sh
   geninitrd/trunk/tests/lvmroot.sh   (contents, props changed)
Log:
- allow dash in PV too


Modified: geninitrd/trunk/mod-lvm.sh
==============================================================================
--- geninitrd/trunk/mod-lvm.sh	(original)
+++ geninitrd/trunk/mod-lvm.sh	Tue Jan 12 11:11:38 2010
@@ -189,13 +189,15 @@
 				/*)
 
 				# rewrite:
-			   	# /dev/mapper/sys-rootfs -> /dev/sys/rootfs
+			 	# /dev/mapper/sys-rootfs -> /dev/sys/rootfs
 				# /dev/mapper/blodnatt-blah--bleh -> /dev/blodnatt/blah-bleh
+				# /dev/mapper/vg--meaw-root -> /dev/vg-meaw/root
 				case "$ROOT" in
 					/dev/mapper/*-*)
-						ROOT=${ROOT#/dev/mapper/}
-						local VG=${ROOT%%-*}
-						local LV=$(echo "${ROOT#$VG-}" | awk '{gsub(/--/, "-"); print}')
+						# change "--" to / (as "/" is impossible in LV name)
+						local dev=$(awk -vdev="${ROOT#/dev/mapper/}" 'BEGIN{gsub(/--/, "/", dev); print dev}')
+						local VG=$(awk -vdev="$dev" 'BEGIN{split(dev, v, "-"); gsub("/", "-", v[1]); print v[1]}')
+						local LV=$(awk -vdev="$dev" 'BEGIN{split(dev, v, "-"); gsub("/", "-", v[2]); print v[2]}')
 						ROOT=/dev/$VG/$LV
 					;;
 				esac

Modified: geninitrd/trunk/tests/lvmroot.sh
==============================================================================
--- geninitrd/trunk/tests/lvmroot.sh	(original)
+++ geninitrd/trunk/tests/lvmroot.sh	Tue Jan 12 11:11:38 2010
@@ -5,13 +5,15 @@
 				/*)
 
 				# rewrite:
-			   	# /dev/mapper/sys-rootfs -> /dev/sys/rootfs
+				# /dev/mapper/sys-rootfs -> /dev/sys/rootfs
 				# /dev/mapper/blodnatt-blah--bleh -> /dev/blodnatt/blah-bleh
+				# /dev/mapper/vg--meaw-root -> /dev/vg-meaw/root
 				case "$ROOT" in
 					/dev/mapper/*-*)
-						ROOT=${ROOT#/dev/mapper/}
-						local VG=${ROOT%%-*}
-						local LV=$(echo "${ROOT#$VG-}" | awk '{gsub(/--/, "-"); print}')
+						# change "--" to / (as "/" is impossible in LV name)
+						local dev=$(awk -vdev="${ROOT#/dev/mapper/}" 'BEGIN{gsub(/--/, "/", dev); print dev}')
+						local VG=$(awk -vdev="$dev" 'BEGIN{split(dev, v, "-"); gsub("/", "-", v[1]); print v[1]}')
+						local LV=$(awk -vdev="$dev" 'BEGIN{split(dev, v, "-"); gsub("/", "-", v[2]); print v[2]}')
 						ROOT=/dev/$VG/$LV
 					;;
 				esac
@@ -65,4 +67,9 @@
 LVM: Using Volume Group 'blodnatt' for rootfs
 EOF
 
+runtest ROOT=/dev/mapper/vg--meaw-root OK=/dev/vg-meaw/root <<'EOF'
+LVM: Using 'root=/dev/vg-meaw/root' from kernel commandline
+LVM: Using Volume Group 'vg-meaw' for rootfs
+EOF
+
 echo "OK: $ok; FAIL: $fail"


More information about the pld-cvs-commit mailing list