X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Fcasper-helpers;h=17f7d627d3b92dd9183365fcb6b846c78a2280e4;hb=refs%2Ftags%2Fdebian%2F1.81%2Bdebian-2;hp=f8bd206bf971ecbf6bdd45ed95174071e8eedfc6;hpb=f454e1250e7deec95166035de0d1b303b99b3a0f;p=live-boot-grml.git diff --git a/scripts/casper-helpers b/scripts/casper-helpers index f8bd206..17f7d62 100644 --- a/scripts/casper-helpers +++ b/scripts/casper-helpers @@ -1,9 +1,11 @@ ## Casper helper functions, used by casper on boot and by casper-snapshot -if [ "${BUILD_SYSTEM}" == "Ubuntu" ]; then +if [ "${BUILD_SYSTEM}" = "Ubuntu" ]; then MP_QUIET="-Q" -else +elif [ "${BUILD_SYSTEM}" = "Debian" ]; then MP_QUIET="-q" +else + MP_QUIET="" fi if [ ! -x "/bin/fstype" ]; then @@ -111,17 +113,42 @@ setup_loop() { local module=$2 local pattern=$3 local offset=$4 + local encryption=$5 - modprobe "${MP_QUIET}" -b "$module" + modprobe ${MP_QUIET} -b "$module" udevsettle for loopdev in $pattern; do if [ "$(cat $loopdev/size)" -eq 0 ]; then dev=$(sys2dev "${loopdev}") - if [ -n "$offset" ]; then - losetup -o "$offset" "$dev" "$fspath" + options='' + if [ 0 -lt "${offset}" ]; then + options="${options} -o ${offset}" + fi + if [ -z "${encryption}" ]; then + losetup ${options} "${dev}" "${fspath}" else - losetup "$dev" "$fspath" + # Loop AES encryption + while true; do + echo -n "Enter passphrase for ${fspath}: " >&6 + read -s passphrase + echo "${passphrase}" > /tmp/passphrase + exec 9&6 + read answer + if [ 'no' = "${answer}" ]; then + unset answer + break + fi + done fi echo "$dev" return 0