summarylogtreecommitdiffstats
path: root/encrypt_hook
diff options
context:
space:
mode:
Diffstat (limited to 'encrypt_hook')
-rw-r--r--encrypt_hook13
1 files changed, 9 insertions, 4 deletions
diff --git a/encrypt_hook b/encrypt_hook
index 819c4cf60fe0..882d5fb4423d 100644
--- a/encrypt_hook
+++ b/encrypt_hook
@@ -44,6 +44,12 @@ EOF
cryptname="root"
fi
+ # This may happen if third party hooks do the crypt setup
+ if [ -b "/dev/mapper/${cryptname}" ]; then
+ echo "Device ${cryptname} already exists, not doing any crypt setup."
+ return 0
+ fi
+
warn_deprecated() {
echo "The syntax 'root=${root}' where '${root}' is an encrypted volume is deprecated"
echo "Use 'cryptdevice=${root}:root root=/dev/mapper/root' instead."
@@ -88,7 +94,7 @@ EOF
fi
else
err "Password succeeded, but ${cryptname} creation failed, aborting..."
- exit 1
+ return 1
fi
elif [ -n "${crypto}" ]; then
[ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
@@ -110,7 +116,6 @@ EOF
if [ -f "$ckeyfile" ]; then
exe="$exe --key-file $ckeyfile"
else
- exe="$exe --verify-passphrase"
echo ""
echo "A password is required to access the ${cryptname} volume:"
fi
@@ -119,7 +124,7 @@ EOF
if [ $? -ne 0 ]; then
err "Non-LUKS device decryption failed. verify format: "
err " crypto=hash:cipher:keysize:offset:skip"
- exit 1
+ return 1
fi
if [ -e "/dev/mapper/${cryptname}" ]; then
if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
@@ -127,7 +132,7 @@ EOF
fi
else
err "Password succeeded, but ${cryptname} creation failed, aborting..."
- exit 1
+ return 1
fi
else
err "Failed to open encryption mapping: The device ${cryptdev} is not a LUKS volume and the crypto= paramater was not specified."