geninitrd - luks na raid1

Wieslaw Kierbedz w.kier w farba.eu.org
Śro, 25 Lis 2009, 20:38:26 CET


Te dwa proste zabiegi sprawiły, że geninitrd prawidłowo (w miarę :P)
wygenerował mi ramdysk szyfrowanego rootfs na soft raid1.


1) zmiana kolejności komend w linuxrc - mdassemble musi zaskoczyć przed
cryptsetup:
--- /sbin/geninitrd    2009-09-19 20:57:43.000000000 +0000
+++ /sbin/geninitrd_luks    2009-11-25 18:48:04.000000000 +0000
 -1222,10 +1222,6 @@
 find_modules_uvesafb
 initrd_gen_uvesafb
 
-if is_yes "$have_luks"; then
-    initrd_gen_luks
-fi
-
 if is_yes "$have_dmraid"; then
     initrd_gen_dmraid
 fi
 -1253,6 +1249,10 @@
     initrd_gen_setrootdev
 fi
 
+if is_yes "$have_luks"; then
+    initrd_gen_luks
+fi
+
 if is_yes "$USE_SUSPEND"; then
     initrd_gen_suspend
 fi


2) Przerwanie dopasowywania urządzeń w /dev/mapper/ do lvm, jeżeli są luksa.
Użyta funkcja trochę nagle się tu pojawia, ale pasowała mi do tego
bardzo - być może nie przeczytałem wszystkiego dobrze i należało po
prostu zmienić jakoś kolejność sprawdzania /dev/mapper/* - najpierw luks
potem lvm i jeśli luks, to nie szukać lvm.
Dochodzi problem, kiedy to jest luks na lvm, nie wiem jak to wówczas
zadziała. :|

diff -urN geninitrd.orig/functions geninitrd_f/functions
--- geninitrd.orig/functions    2009-09-19 20:57:43.000000000 +0000
+++ geninitrd_f/functions    2009-11-25 18:37:59.000000000 +0000
 -65,6 +65,7 @@
 
     case $rootdev in
     /dev/dm-* | /dev/mapper/*)
+        is_luks $rootdev && return
         local node
         node=$(dm_lvm2_name "$rootdev") || return 1
         if [ "$node" ]; then

-- 
WK


Więcej informacji o liście dyskusyjnej pld-devel-pl