--- dm-crypt-start.sh.orig 2007-06-06 23:17:40.000000000 +0200 +++ /lib/rcscripts/addons/dm-crypt-start.sh 2007-06-07 00:02:06.000000000 +0200 @@ -64,9 +64,9 @@ rmdir ${mntrem} 2>/dev/null >/dev/null einfo "Cannot find ${key} on removable media." echo -n -e " ${green}*${off} Abort?(${red}yes${off}/${green}no${off})" >/dev/console - read ans /dev/console - [ "$ans" != "yes" ] && { i=0; c=0; } || return + [ "$ans" = "no" ] && { i=0; c=0; } || return else key="${mntrem}${key}" break @@ -80,9 +80,9 @@ rmdir ${mntrem} 2>/dev/null >/dev/null einfo "Removable device for ${target} not present." echo -n -e " ${green}*${off} Abort?(${red}yes${off}/${green}no${off})" >/dev/console - read ans /dev/console - [ "$ans" != "yes" ] && { i=0; c=0; } || return + [ "$ans" = "no" ] && { i=0; c=0; } || return fi fi done @@ -186,9 +186,34 @@ fi } +# Lookup optional bootparams +parse_opt() { + case "$1" in + *\=*) + local key_name="`echo "$1" | cut -f1 -d=`" + local key_len=`strlen key_name` + local value_start=$((key_len+2)) + echo "$1" | cut -c ${value_start}- + ;; + esac +} + local cryptfs_status=0 local gpg_options key loop_file target targetline options pre_mount post_mount source swap remdev +CMDLINE="`cat /proc/cmdline`" +for x in ${CMDLINE} +do + case "${x}" in + key_timeout\=*) + KEY_TIMEOUT=`parse_opt "${x}"` + if [ ${KEY_TIMEOUT} -gt 0 ]; then + read_timeout="-t ${KEY_TIMEOUT}" + fi + ;; + esac +done + if [[ -f /etc/conf.d/cryptfs ]] && [[ -x /bin/cryptsetup ]] ; then ebegin "Setting up dm-crypt mappings"