# Verschlüsseltes LVM [gelöst]

## Beelzebub_

Hallo,

folgendes:

Ich habe ein LVM erstellt:

2 pv's ; 1 vg ; /root /home (ext4)

Die zwei Pv's sind verschlüsselt.

Gentoo ist bereits auf /root installiert.

Wie gelingt es mir nun die 2 Pv's zu entschlüsseln und anschließend die LVM (vg) zu laden um /root zu verfügung zu stellen?

---

Ich nutze Grub2

----------

## bell

Du brauchst eine intiramfs, die entschlüsselt bevor /root eingehängt wird. Am einfachsten geht es mit genkernel:

```
genkernel --oldconfig --lvm  --luks --no-ramdisk-modules --no-keymap initramfs
```

----------

## Beelzebub_

Auf solche ungenauen unbeschriebenen Kommentare kann ich verzichten.

----------

## cryptosteve

Unbeschrieben? Wie meinen?

Btw, Dir ist schon klar, dass Du mit solchen Kommentaren auch die letzten vergraulst, die hier überhaupt noch mit Dir reden?

----------

## bell

@Beelzebub_, ein bischen solltest Du auch selbst was machen. Ich habe Dir die nötigen Stichwörter geliefert und sogar eine komplette Komandozeile. Aber gut, wenn Du noch mehr Infos brauchst: bitte schön

----------

## Beelzebub_

Ich weis wie man ein initramfs erstellt, und es einbindet. Jedoch ist das noch nicht das Ende der Fahnenstange.

Z.B muss man noch etwas in die grub2 conf eintragen, wovon du nix erwähnt hast, leider finde ich keine Seiten, welche vernümftig darstellen wie das bei verschlüsselten LVM's funktioniert.

----------

## bell

Genkernel sagt Dir in etwa, was man in die grub-Konfiguration in etwa eintragen muss. An sonsten steht alles im "man genkernel" unter "RAMDISK OPTIONS" was man alles in der grub-Konfiguration eintragen kann. 

```
dolvm crypt_root=/dev/mapper/vg-root
```

sollten reichen.

Die /home musst Du über /etc/conf.d/dmcrypt einbinden. und den dmcrypt-Skript entsprechend in den Runlevel Boot aufnehmen.

PS: Konkrete Frage => Konkrete Antwort; Dummer Spruch => Dumme Antwort.

----------

## Beelzebub_

 *bell wrote:*   

> Genkernel sagt Dir in etwa, was man in die grub-Konfiguration in etwa eintragen muss. An sonsten steht alles im "man genkernel" unter "RAMDISK OPTIONS" was man alles in der grub-Konfiguration eintragen kann. 
> 
> ```
> dolvm crypt_root=/dev/mapper/vg-root
> ```
> ...

 

Ich glaube das der Code nicht funktioniert, da ich nicht die root Partition innerhalb der LVM verschlüsselt habe sondern die LVM..

- erst müssen die zwei physischen Partitionen entschlüsselt werden, dann muss die LVM aktiviert werden - auf die root Partition zeigend.

----------

## bell

die initramfs landet im /boot. In der Grub.conf musst Du eine "initrd" Zeile unter der "kernel" Zeile anlegen. zB. 

```
kernel /boot/kernel-genkernel-x86_64-3.7.10-gentoo crypt_root=/dev/mapper/vg-root dolvm nodetect quiet

initrd /boot/initramfs-genkernel-x86_64-3.7.10-gentoo
```

PS: Du kannst ruhig den Kernel auch mit dem genkernel mit bauen und nach /boot kopieren lassen. Die Genkernel-Option "--oldconfig" sorgt dafür dass Deine ".config" Datei nicht angefasst/überschrieben wird.

----------

## bell

Sorry, hab es jetzt erst gesehen, dass zuerst die PV's verschlüsselt sind und dann dadrauf LVM aufgesetzt ist. Mir fällt jetzt auch keine Möglichkeit ein das per Genkernel hinzubiegen. Mit sys-kernel/dracut kenne ich mich nicht aus. Evtl. kriegt er eine entsprechende initramfs hin. An sonsten blebt nur noch eine eigene initramfs zu bauen. Eine initramfs ist ein cpio Archiv mit einem Mini-System (meist busybox-basiert), der nach dem Mount von /root die Kontrolle an das init abgibt. Anleitungen findest Du genug im Netz.

----------

## Beelzebub_

Nun ich könnte die Verschlüsselung noch ändern, aber ich denke es macht mehr sinn mit verschlüsselten PV's.

Da man die Partitionen innerhalb der LVM immer noch verändern kann in der Größe. Verschlüsselte Partitionen kann man glaube ich nicht so leicht ändern.

----------

## bell

Verschlüsselte Partitionen lassen sich auch in der Größe verändern (cryptsetup resize..). 

Das Problem ist halt wie die Verschlüsselung "gruppiert" wird. Aktuell ist ja jede PV einzeln verschlüsselt (Ein Key pro PV). Das macht wenig Sinn, da sie ja eigentlich zusammen gehören.

Umgekehrt wäre jede LV einzeln verschlüsselt (Ein Key pro LV).

Leider lässt sich eine "VG" nicht komplett verschlüsseln. Falls man also alles zusammen verschlüsseln möchte, müsste man noch eine Raid-Ebene, die die Platten zusammenfasst und zusammen verschlüsselt, hinzufügen. Aber dafür wird der Genkernel auch keine initramfs erstellen können.

----------

## Beelzebub_

Ich habe jetzt mal die Verschlüsselung verändert, so das die PV's nicht verschlüsselt sind, sondern die LV's.

Außerdem habe ich das Initramfs und den Kernel mit Genkernel installiert und die Kernelparameter grub2 mitgeteilt.

Mir fällt auf, das der Genkernel die Bootvorgänge nicht mehr detailliert anzeigt.

Ich sehe nur noch: 

```
 Linux x86_64-genkenel-3.8.3-r1 wird geladen...

initiale ramdisk wird geladen...
```

Wie kann ich das ändern, damit ich auch die kompletten Meldungen sehe?

----------

## bell

Nimm den Parameter "quiet" aus der grub-Konfiguration raus.

----------

## Beelzebub_

```
GRUB_CMDLINE_LINUX_DEFAULT="dolvm crypt_root=/dev/mapper/vg-root" 
```

Ich habe kein "quiet" Parameter genutzt, trotzdem sehe ich nur die zwei Zeilen und muss das Passwort Blind ohne irgendeine Aufforderungen eingeben..

EDIT: Bei anderen Kernel werden die Meldungen ja alle gezeigt, nur bei den Genkernel nicht.

----------

## Beelzebub_

So, ich habe den Genkernel gefeuert und wieder meinen eigenen gebaut, und es klappt alles wird angezeigt.

Das verschlüsselte LV wird auch entschlüsselt, jedoch lande ich nach dem Boot wieder auf meinen alten root,home Partitionen, wie kommt das?

Die fstab Datei des verschlüsselten LV ist angepasst.

----------

