SVN: geninitrd/trunk/mod-luks.sh

arekm arekm at pld-linux.org
Mon Dec 5 19:26:10 CET 2011


Author: arekm
Date: Mon Dec  5 19:26:10 2011
New Revision: 12440

Modified:
   geninitrd/trunk/mod-luks.sh
Log:
Don't hardcode device name. Local variables.

Modified: geninitrd/trunk/mod-luks.sh
==============================================================================
--- geninitrd/trunk/mod-luks.sh	(original)
+++ geninitrd/trunk/mod-luks.sh	Mon Dec  5 19:26:10 2011
@@ -72,13 +72,13 @@
 # @access	public
 find_modules_luks() {
 	local devpath="$1"
-	local dev
+	local dev vars major minor
 
 	local name=${devpath#/dev/mapper/}
 	LUKSDEV=$(/sbin/cryptsetup status $name 2>/dev/null | awk '/device:/{print $2}')
 	if [ -z "$LUKSDEV" ]; then
 		# could be initialized by old cryptsetup, we need some magic
-		vars=$(dmsetup deps lolek_crypt | awk '/dependencies.*(.*)/ { left=index($0, "("); right=index($0, ")"); split(substr($0, left + 1, right - left - 1), A, " *, *") ; print "major=" A[1] "; minor=" A[2] }')
+		vars=$(dmsetup deps $name 2> /dev/null | awk '/dependencies.*(.*)/ { left=index($0, "("); right=index($0, ")"); split(substr($0, left + 1, right - left - 1), A, " *, *") ; print "major=" A[1] "; minor=" A[2] }')
 		eval "$vars"
 		if [ -n "$major" -a -n "$minor" ] ; then
 			LUKSDEV=$(awk "\$1 == $major && \$2 == $minor { print \"/dev/\" \$4 }" /proc/partitions)
@@ -86,7 +86,7 @@
 
 	fi
 	if [ -z "$LUKSDEV" ]; then
-		die "Lost cryptsetup device meanwhile?"
+		die "Can't find underlying device names for crypted device."
 	fi
 
 	find_module "dm-crypt"


More information about the pld-cvs-commit mailing list