debug "+ cryptsetup ${keyfile:+-d $keyfile} luksOpen '$src' '$dst'"
add_linuxrc <<-EOF
+ # cryptsetup can be called twice and in case on crypt on lvm only second
+ # will succeed because there will be no src device in first cryptsetup call
+ # this can be called multiple times, before lvm and after lvm.
if [ -e "$src" ]; then
- cryptsetup ${keyfile:+-d $keyfile} luksOpen '$src' '$dst' <&1
+ crypt_status=\$(cryptsetup status '$dst')
+ if [ "\${crypt_status%%is inactive.}" != "\$crypt_status" ]; then
+ # is inactive
+ cryptsetup ${keyfile:+-d $keyfile} luksOpen '$src' '$dst' <&1
+ fi
fi
debugshell