• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] root auf lvm auf dm-crypt (luks) unter 10.3

Hallo,

ich habe das Problem, dass ich die initrd mit mkinitrd nicht so hinbekomme, dass beim Booten das Passwort der Crypt-Partition angefordert wird.

OpenSuse 10.3 ist installiert und kann auch umständlich über die Install-DVD gebootet werden (s.u.).

D.h. "/" ist mittels LVM als root_lv angelegt, dieses log. Volume ist in der Volume Group system_vg und diese wiederum in der dm-crypt Crypt-Partition /dev/sdb5.


Details:
openSUSE 10.3 32bit
Festplatte mit folgender Aufteilung:
sdb1 -> /boot nicht verschlüsselt, inkl. GRUB
sdb5 -> verschlüsselte Partition -> /dev/mapper/sytem
# cryptsetup luksOpen /dev/sdb5 system
entschlüsselt / öffnet die Partition

/dev/mapper/system ist die Basis für die LVM Volume Groups system_vg
# vgchange -a y system_vg
aktiviert die beiden Volumes /dev/mapper/system_vg-root_lv und /dev/mapper/system_vg-swap_lv

Beim Booten mittels grub wird allerdings cryptsetup nicht aufgerufen und damit /dev/sdb5 nicht entschlüsselt, was dazu führt, dass mit "waiting for /dev/system_vg/root_lv ....." Schluss ist.

BTW: die benötigten Module dm-mod, dm-crypt, aes-i586 und sha256 habe ich mittels yast2 in etc/sysconfig/kernel bei INITRD_MODULES hinzugefügt.

Gruß,
JpmMuc.

PS: Boot mittels Install-DVD:
Beim Screen zur Annahme der Nutzungsbedingungen mittels Strg+Alt+F2 auf die Konsole wechseln und das "/" Volume entschlüsseln und aktivieren, danach Strg+F7 und mittels andere Optionen -> installiertes System starten.
 
Hm....evtl hat das was mit dem LVM zu tun. Hab meine Kiste neu aufgesetzt, / ist unverschlüsselt, aber /home und /daten werden verschlüsselt -> beim booten wird 2mal das Password abgefragt. Paßt also. Und ging ohne weitere manuelle Eingriffe.
 
coogor schrieb:
... / ist unverschlüsselt, aber /home und /daten werden verschlüsselt -> beim booten wird 2mal das Password abgefragt. Paßt also. Und ging ohne weitere manuelle Eingriffe.

Ist klar, sobald / läuft, ist es relativ einfach alles hochzufahren.

Mein Problem ist, dass das mkinitrd Script nicht die notwendigen scripts und auch nicht cryptsetup in die initrd reinpackt, damit klappt natürlich das Booten nicht.

Hat irgendwer eine Ahnung, woran sich mkinitrd orientiert? Oder gibt es evtl. ein config file mit dem man mkinitrd gezielter steuern kann?

Unterhalb von /lib/mkinitrd sind alle notwendigen scripts (inkl. luks, etc.) vorhanden, nur werden sie nicht in's initrd gepackt ...

Gruß,
JpmMuc.
 
In der c't war neulich ein Beitrag zur Initrd...evtl hilft das. Ansonsten...hast Du mal die Bugs bei SuSE durchsucht?
 
coogor schrieb:
In der c't war neulich ein Beitrag zur Initrd...evtl hilft das. Ansonsten...hast Du mal die Bugs bei SuSE durchsucht?

Die Bugs habe ich durchsucht, da gibt es die eine oder andere diesbezügliche Fehlermeldung, allerdings keine Lösung.

Zumindest bin ich etwas weitergekommen.

Damit in initrd das luks feature aufgenommen wird, kann man die features mit -f "dm luks" angeben.

Code:
mkinitrd -f "dm luks" -d /dev/mapper/system_vg-root_lv

Damit die luks scripts funktionieren muss man auch in /boot/grub/menu.lst auf der kernel Zeile noch folgende Parameter ergänzen. Das Stand zwar ähnlich in den HowTo's allerdings hatte ich den Sinn nicht verstanden, erst als ich mir in /lib/mkinitrd die luks srcipts angesehen habe, wurden mir die Parameter klar.

Code:
luks_<name>=/dev/<device> luks=<name>
z.B.
luks_cryptlvm=/dev/sdb5 luks=cryptlvm

Danach wird das PW abgefragt, allerdings klappt der Aufruf von "cryptsetup luksOpen ..." nicht und folgender Fehler taucht auf.

Code:
device-mapper: table:  253:0: crypt: Error allocating crypto tfm
device-mapper: ioctl: error adding target to table
device-mapper: ioctl: device doesn't appear to be in dev hash table.
Command failed: Failed to setup dm-crypt key mapping.
Check kernel for support for the aes-cbc-essiv:sha256 cipher spec and verify that /dev/sdb5 contains at least 258 sectors.

Jetzt hänge ich hier.

Siehe auch, das gleiche Problem, ohne lvm: http://www.linux-club.de/viewtopic.php?p=544294#544294


Gruß,
JpmMuc.
 
Stichworte: encrypted root cryptsetup lvm volume opensuse

jpmmuc schrieb:
Danach wird das PW abgefragt, allerdings klappt der Aufruf von "cryptsetup luksOpen ..." nicht und folgender Fehler taucht auf.

Code:
device-mapper: table:  253:0: crypt: Error allocating crypto tfm
device-mapper: ioctl: error adding target to table
device-mapper: ioctl: device doesn't appear to be in dev hash table.
Command failed: Failed to setup dm-crypt key mapping.
Check kernel for support for the aes-cbc-essiv:sha256 cipher spec and verify that /dev/sdb5 contains at least 258 sectors.

Jetzt hänge ich hier.

So, das Problem ist jetzt auch gelöst, alles geht ... :p und es ist wie immer unter Linux ein Dokumentationsproblem ... :roll:

Die Fehlermeldung kommt daher, dass dem Kernel noch Module fehlen (die vorher im alten Kernel eincompiliert waren). D.h. man muss alle notwendigen Module die man beim Booten verwenden will auch initrd mitgeben!

D.h. mit Yast2 im Sysconfig Editor:

Code:
YaST -> System -> Editor für /etc/sysconfig-Dateien -> System -> Kernel -> INITRD_MODULES

die Module

Code:
dm-mod dm-crypt aes-i586 sha256 cbc blkcipher

mit jeweils einem Leerzeichen getrennt ergänzen (auf doppelte Einträge prüfen).


Gruß,
JpmMuc.

PS: So jetzt teste ich den neuen ati 8.01 Treiber mittels lvm snapshot, das ist mein liebstes Testvehikel, um eine vorhandene Installation nicht zu zerstören :lol:
 
Oben