From 3b802a4a93fdca09fc687b89aa46206d698b899a Mon Sep 17 00:00:00 2001 From: Chris Gianelloni Date: Mon, 23 Oct 2006 16:21:20 +0000 Subject: [PATCH] Added patch from bug #152441 to improve LUKS support. git-svn-id: svn+ssh://svn.gentoo.org/var/svnroot/genkernel/trunk@453 67a159dc-881f-0410-a524-ba9dfbe2cb84 --- ChangeLog | 3 +++ generic/linuxrc | 39 ++++++++++++++++++--------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/ChangeLog b/ChangeLog index 90216f6..3fa7f5a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,9 @@ # Copyright 2006-2006 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ + 23 Oct 2006; Chris Gianelloni generic/linuxrc: + Added patch from bug #152441 to improve LUKS support. + 23 Oct 2006; Chris Gianelloni x86/kernel-config-2.6, x86_64/kernel-config-2.6: Updated kernel configs for amd64/x86 for bug #151609 and bug #152299. diff --git a/generic/linuxrc b/generic/linuxrc index cf365fd..3f3909d 100644 --- a/generic/linuxrc +++ b/generic/linuxrc @@ -172,6 +172,9 @@ do nfsroot\=*) NFSROOT=`parse_opt "${x}"` ;; + crypt_root\=*) + CRYPT_ROOT=`parse_opt "${x}"` + ;; esac done @@ -220,9 +223,23 @@ start_dev_mgr # Setup md device nodes if they dont exist setup_md_device -# Start EVMS +# Scan volumes startVolumes +# Iinitialize encrypted root device +if [ -n "${CRYPT_ROOT}" ] +then + cryptsetup luksOpen ${CRYPT_ROOT} root || exit -1 + + if [ -n "${REAL_ROOT}" ] + then + # Rescan volumes + startVolumes + else + REAL_ROOT="/dev/mapper/root" + fi +fi + # Set up unionfs mkdir -p ${NEW_ROOT} setup_unionfs @@ -370,26 +387,6 @@ do then got_good_root=1 - #check if LUKS setup is needed - elif [ `echo ${REAL_ROOT} | sed -e "s/\([^:]*\):.*/\1/"` = "luks" ] - then - LUKSdev=`echo ${REAL_ROOT} | sed -e "s/luks:\(.*\)/\1/"` - if [ -e /sbin/cryptsetup ] - then - if cryptsetup isLuks ${LUKSdev} - then - good_msg "LUKS partition - opening $LUKSdev" - cryptsetup luksOpen ${LUKSdev} root && - REAL_ROOT=/dev/mapper/root && - got_good_root=1 - else - bad_msg "${LUKSDEV} is not a LUKS partition" - REAL_ROOT="" - fi - else - bad_msg "This initrd does not support LUKS" - REAL_ROOT="" - fi else bad_msg "Block device ${REAL_ROOT} is not a valid root device..." REAL_ROOT="" -- 2.26.2