From: Till Maas Date: Sun, 9 Feb 2014 08:08:42 +0000 (+0100) Subject: Cryptroot-ask.sh: Use variables consistently X-Git-Tag: 037~37 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9b5e2e8574577cd4ec1e3645255060f749490537;p=thirdparty%2Fdracut.git Cryptroot-ask.sh: Use variables consistently - Always use $luksname instead of sometimes $2 - define $asked_file instead of using the same path twice --- diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh index 18b2d387d..1c3e792b0 100755 --- a/modules.d/90crypt/cryptroot-ask.sh +++ b/modules.d/90crypt/cryptroot-ask.sh @@ -10,6 +10,24 @@ NEWROOT=${NEWROOT:-"/sysroot"} . /lib/dracut-lib.sh +# default luksname - luks-UUID +luksname=$2 + +# check if destination already exists +[ -b /dev/mapper/luksname ] && exit 0 + +# we already asked for this device +asked_file=/tmp/cryptroot-asked-$luksname +[ -f $asked_file ] && exit 0 + +# load dm_crypt if it is not already loaded +[ -d /sys/module/dm_crypt ] || modprobe dm_crypt + +. /lib/dracut-crypt-lib.sh + +# fallback to passphrase +ask_passphrase=1 + # if device name is /dev/dm-X, convert to /dev/mapper/name if [ "${1##/dev/dm-}" != "$1" ]; then device="/dev/mapper/$(dmsetup info -c --noheadings -o name "$1")" @@ -33,7 +51,7 @@ if [ -f /etc/crypttab ] && getargbool 1 rd.luks.crypttab -d -n rd_NO_CRYPTTAB; t # UUID used in crypttab if [ "${dev%%=*}" = "UUID" ]; then - if [ "luks-${dev##UUID=}" = "$2" ]; then + if [ "luks-${dev##UUID=}" = "$luksname" ]; then luksname="$name" break fi @@ -159,7 +177,7 @@ fi unset device luksname luksfile # mark device as asked ->> /tmp/cryptroot-asked-$luksname +>> $asked_file need_shutdown udevsettle