# @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)
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"