diff options
Diffstat (limited to 'encrypt_hook')
-rw-r--r-- | encrypt_hook | 13 |
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." |