On Sun, May 07, 2006 at 11:33:48PM +0200, Jonas Meurer wrote:
> > If you remove cipher and hash arguments from /etc/crypttab, the
> > initramfs hook script will not copy the cipher and hash kernel 
> > modules to initramfs. That is what my patch fixes.
 
> which patch do you mean here? can you resend it to me?

It seems I only thought I had sent it, sorry. Incidentally it was
also ugly, here is a cleaned up version. This time I'm using the
same code David did for lvm.
Index: initramfs-cryptroot-hook
===================================================================
--- initramfs-cryptroot-hook    (revision 175)
+++ initramfs-cryptroot-hook    (working copy)
@@ -43,8 +43,9 @@
 }
 
 get_root_modules() {
-       local rootopts
+       local rootopts rootnode
        rootopts=$1
+       rootnode=$2
 
        [ ! -z $rootopts ] || return
 
@@ -65,6 +66,16 @@
                [ ! -z $hash -o $hash != $value ] || continue
                echo $hash
        done
+       
+       local luksdesc lukscipher lukshash
+       luksdesc=$( dmsetup table $rootnode | cut -d " " -f4 )
+       lukscipher=$( echo $luksdesc | cut -d ":" -f1 | cut -d "-" -f1 )
+       luksivhash=$( echo $luksdesc | cut -d ":" -s -f2 )
+       [ ! -z "$lukscipher" ] || return 1
+       echo $lukscipher
+       [ ! -z "$luksivhash" ] && echo "$luksivhash"
+
+       return 0
 }
 
 get_root_initramfsopts() {
@@ -109,7 +120,7 @@
 [ ! -z $rootopts ] || exit 0
 
 # Calculate needed modules
-modules=$(get_root_modules $rootopts | sort | uniq)
+modules=$(get_root_modules $rootopts $node | sort | uniq)
 for x in $modules; do
        force_load ${x}
 done

Reply via email to