diff -ur casper-1.332~/scripts/casper-helpers casper-1.332/scripts/casper-helpers --- casper-1.332~/scripts/casper-helpers 2013-04-25 04:43:54.000000000 -0500 +++ casper-1.332/scripts/casper-helpers 2013-08-22 09:28:22.265748710 -0500 @@ -191,6 +191,24 @@ fi } +setup_crypt() { + # Most of the following stolen from local-top/cryptroot + cryptcreate="cryptsetup luksOpen $1 $2" + cryptkey="Unlocking the disk $cryptsource ($crypttarget)\nEnter passphrase: " + if [ -x /bin/plymouth ] && plymouth --ping; then + cryptkeyscript="plymouth ask-for-password --prompt" + cryptkey=$(printf "$cryptkey") + else + cryptkeyscript="/lib/cryptsetup/askpass" + fi + + $cryptkeyscript "$cryptkey" | $cryptcreate --key-file=- && + /sbin/udevadm settle + if [ -e "/dev/mapper/$2" ]; then + echo "/dev/mapper/$2" + fi +} + find_cow_device() { pers_label="${1}" cow_backing="/${pers_label}-backing" @@ -221,6 +239,12 @@ try_mount "${devname}" "${cow_backing}" "rw" || continue cow_backing_mp=$(where_is_mounted "${devname}") if [ -e "${cow_backing_mp}/${pers_fpath}" ]; then + # check to see if its a luks devices, this is probably better than get_fstype + if cryptsetup isLuks "${cow_backing_mp}/${pers_fpath}"; then + echo $(setup_crypt "${cow_backing_mp}/${pers_fpath}" ${pers_label}) + return 0 + fi + echo $(setup_loop "${cow_backing_mp}/${pers_fpath}" "loop" "/sys/block/loop*") return 0 else