Added patch from bug #152441 to improve LUKS support.
authorChris Gianelloni <wolf31o2@gentoo.org>
Mon, 23 Oct 2006 16:21:20 +0000 (16:21 +0000)
committerChris Gianelloni <wolf31o2@gentoo.org>
Mon, 23 Oct 2006 16:21:20 +0000 (16:21 +0000)
git-svn-id: svn+ssh://svn.gentoo.org/var/svnroot/genkernel/trunk@453 67a159dc-881f-0410-a524-ba9dfbe2cb84

ChangeLog
generic/linuxrc

index 90216f6f9e1c5026deb93d5dba019aa096e7dea3..3fa7f5adbaf06bfef608dda8bcb248787d225c8e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,9 @@
 # Copyright 2006-2006 Gentoo Foundation; Distributed under the GPL v2
 # $Header: $
 
+  23 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org> generic/linuxrc:
+  Added patch from bug #152441 to improve LUKS support.
+
   23 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org> x86/kernel-config-2.6,
   x86_64/kernel-config-2.6:
   Updated kernel configs for amd64/x86 for bug #151609 and bug #152299.
index cf365fdc28fcedd420c1ca5e7d03b1434a69d4a2..3f3909d0966f2d4a71cffb3bd169d0621652dbe9 100644 (file)
@@ -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=""