Patch to use cryptsetup volumes for persistent storage.
authorAndrey Asadchev <asadchev@gmail.com>
Fri, 29 Feb 2008 11:01:58 +0000 (12:01 +0100)
committerDaniel Baumann <daniel@debian.org>
Wed, 9 Mar 2011 16:31:06 +0000 (17:31 +0100)
Cryptsetup must be used with usual
"cryptopts=source=UUID=$(UUID),target=$(TARGET)". For USB devices it may be
necessary to specify "rootdelay=$SECONDS" in order to wait for USB media.

scripts/live
scripts/live-helpers

index 8db6b80..0280edd 100755 (executable)
@@ -1171,7 +1171,7 @@ find_livefs ()
        fi
 
        # or do the scan of block devices
-       for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop | grep -v ram)
+       for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop | grep -v ram | grep -v 'dm-')
        do
                devname=$(sys2dev "${sysblock}")
                fstype=$(get_fstype "${devname}")
@@ -1218,6 +1218,11 @@ set_usplash_timeout ()
 
 mountroot ()
 {
+    
+        if [ -x /scripts/local-top/cryptroot ]; then
+           /scripts/local-top/cryptroot
+       fi
+
        exec 6>&1
        exec 7>&2
        exec > live.log
index 504a3f4..807553a 100644 (file)
@@ -34,6 +34,13 @@ get_fstype ()
        local FSTYPE
        local FSSIZE
 
+       # fstype misreports LUKS devices
+       is_luks "${1}"
+       if [ $? -eq 0 ]; then
+           /lib/udev/vol_id -t ${1} 2>/dev/null
+           return
+       fi
+
        eval $(fstype < ${1})
 
        if [ "${FSTYPE}" != "unknown" ]
@@ -306,3 +313,16 @@ get_mac ()
 
        echo ${mac}
 }
+
+is_luks()
+{
+    devname="${1}"
+    if [ -x /sbin/cryptsetup ]
+    then
+       /sbin/cryptsetup isLuks "${devname}" 2>/dev/null
+       return $?
+    else
+       return 1
+    fi
+
+}