summaryrefslogtreecommitdiff
path: root/scripts/live-helpers
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2007-09-23 14:46:37 +0200
committerDaniel Baumann <daniel@debian.org>2011-03-09 17:25:54 +0100
commit3d52fbcb4fe70132ade14759d76573b471294800 (patch)
tree7ee8e69a62e032cb427e6b3ae96481ae4e8c9df8 /scripts/live-helpers
parent9fc9e2a1a11b0edada38cb501fefe4f58aa414ac (diff)
downloadlive-boot-3d52fbcb4fe70132ade14759d76573b471294800.tar.gz
live-boot-3d52fbcb4fe70132ade14759d76573b471294800.zip
Adding live-initramfs 1.87.3-1.
Diffstat (limited to 'scripts/live-helpers')
-rw-r--r--scripts/live-helpers42
1 files changed, 38 insertions, 4 deletions
diff --git a/scripts/live-helpers b/scripts/live-helpers
index 8402d93..eac2175 100644
--- a/scripts/live-helpers
+++ b/scripts/live-helpers
@@ -1,4 +1,4 @@
-## Casper helper functions, used by casper on boot and by casper-snapshot
+## live-initramfs helper functions, used by live-initramfs on boot and by live-snapshot
if [ "${BUILD_SYSTEM}" = "Ubuntu" ]; then
MP_QUIET="-Q"
@@ -108,11 +108,20 @@ fs_size ()
echo "${size}"
}
+load_keymap()
+{
+ # Load custom keymap
+ if [ -x /bin/loadkeys -a -r /etc/boottime.kmap.gz ]; then
+ loadkeys /etc/boottime.kmap.gz
+ fi
+}
+
setup_loop() {
local fspath=$1
local module=$2
local pattern=$3
local offset=$4
+ local encryption=$5
modprobe ${MP_QUIET} -b "$module"
udevsettle
@@ -120,10 +129,35 @@ setup_loop() {
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
+ load_keymap
+ echo -n "Enter passphrase for ${fspath}: " >&6
+ read -s passphrase
+ echo "${passphrase}" > /tmp/passphrase
+ exec 9</tmp/passphrase
+ /sbin/losetup ${options} -e "${encryption}" -p 9 "${dev}" "${fspath}"
+ error=$?
+ exec 9<&-
+ rm -f /tmp/passphrase
+ if [ 0 -eq ${error} ]; then
+ unset error
+ break
+ fi
+ echo -n "Something went wrong... Retry? [YES/no] " >&6
+ read answer
+ if [ 'no' = "${answer}" ]; then
+ unset answer
+ break
+ fi
+ done
fi
echo "$dev"
return 0