# <solved> Hilfe bei cryptsetup/initramfs benötigt

## cITs

Guten Tag allerseits,

ich würde gerne meinen Laptop neu aufsetzen und meine Root- und Swap-Partition verschlüsseln, nur hab bin ich mir nicht sicher wie ich dabei vorgehen soll

Ich habe diesen Artikel über initramfs gelesen und soweit kapiert das man alles relevante zu einem Paket dort hinein kopieren soll. Was mich allerdings stuzig macht ist, warum ich diesen initramfs auf der verschlüsselten Root-Partition anlegen soll, das geht doch in die Hose?! Was mich außerdem etwas stutzig macht sind mehr oder weniger unnötige Tools wie Busybox, macht die Funktionalität dieses Tools bzw mehrerer im initramfs das ganze nicht etwas unsicher? Desweiteren ist mir aufgefallen das dass Useflag static alleine beim kompilieren von cryptsetup, lvm2 und busybox nicht reichtdas benötigte Flag heißt static-libs.

Linux ist kein Neuland für mich, aber mit dieser Art Komplexität hatte ich es bisher nie zutun.

Und bevor ich's ganz vergesse: Könnte jemand eventuell noch ein paar Cipher für einen Pentium M Dothan 2 GHz empfehlen?

Würde mich freuen wennn mir jemand helfen könnte

Gruß cITs

----------

## cryptosteve

Spricht irgendetwas schlüssiges gegen die Verwendung von genkernel? Dann brauchst Du Dich um den ganzen Rotz nicht zu kümmern und kannst luks/lvm entsprechend über /etc/genkernel.conf konfigurieren oder den Kernel mit 

```
genkernel --luks --lvm --$whatever ...
```

bauen und installieren.

Ich habe hier ein System mit FDE und genkernel managed das einwandfrei.

----------

## cITs

Nun, das wäre eine bequeme Option aber ich will dabei auch was lernen, sonst würde ich Gentoo nicht benutzen. Davon abgesehen hab ich mal schlechte Erfahrungen mit Genkernel gemacht

----------

## forrestfunk81

Also gerade Busybox ist ganz und gar nicht unnötig. Um ein Skript auszuführen wird ein Interpreter benötigt und Busybox bietet dafür eine abgespeckte Version der Shell an (deshalb am Anfang des initramfs/init Skripts: #!/bin/busybox sh). Außerdem bietet Busybox so Befehle wie mount, ohne die man bei einem Initramfs nicht weit kommt.

Zu den USE Flags:

cryptsetup, lvm2, busybox haben nur das static USE Flag. Aber iirc müssen dafür auch noch andere Pakete mit dem static-libs Flag neu gebaut werden. 

Wo du das Initramfs anlegst und befüllst ist erst mal egal. Wenn alles im Verzeichnis drin ist, wird daraus die Initramfs Datei erstellt, die du dann ins (unverschlüsselte) /boot legen und in Grub angeben musst. 

Über Verschlüsselungsalgorithmen kannn ich nicht viel sagen. Da kennen sich andere besser aus.

Ich benutze meist twofish-xts-essiv oder serpent-xts-essiv.

[Edit]

Wenn du keinen Raid hast kannst du dir auch das lvm und mdadm fürs initramfs sparen. Wenn das initramfs nur zum Entschlüsseln sein soll, reichen die binaries für busybox und cryptsetup. 

Es gibt da noch mehr Anwendungs-Beispiele im Wiki (siehe suspend, FBsplash, oder auch das alles umfassende Beispiel bei DM-Crypt). Ich hab mir aus den vier Wiki Artikeln ein an meine Bedürfnisse angepasstes initramfs gestrickt.

----------

## bas89

Auf LVM würde ich nicht verzichten, da dann innerhalb der LUKS-Container im Betrieb die Größe der Partitionen verändert werden kann. Die Größe der Container nachher zu ändern wird sehr schwierig.

----------

## forrestfunk81

 *bas89 wrote:*   

> Auf LVM würde ich nicht verzichten, da dann innerhalb der LUKS-Container im Betrieb die Größe der Partitionen verändert werden kann. Die Größe der Container nachher zu ändern wird sehr schwierig.

 

Hmm.. musste noch nie die Größe der Container oder Partitionen verändern. Aber LVM braucht man ja nicht unbedingt zum entschlüsseln und mounten auf der Initramfs. Beim Booten hab ich /etc/init.d/lvm schon im Runlevel boot, das sollte ja eigentlich reichen.

----------

## cITs

Da ich etwas ungeduldig war hab ich's mal mit Genkernel versucht, aber ich es wird nicht gebootet.

Das einzige was passiert ist das der Cursor aufblinkt und das Laptop sich irgendwann in den Ruhezustand begibt.

Kann mir wer erklären wie ich per LiveCD die verschlüsselte Root-Partition mounten kann?

----------

## forrestfunk81

Auf der LiveCd ist cryptsetup. Aber es kommt auch drauf an, welchen Cipher du zur Verschlüsselung verwendet hast. Der muss natürlich in dem Kernel der LiveCd vorhanden sein. Eventuell ist der auch als Modul gebaut, so dass du den noch laden musst.

```

# cryptsetup luksOpen /dev/sdaX irgendeinname

# mount /dev/mapper/irgendeinname /mnt/gentoo

```

----------

## cITs

Hab ich bereits versucht:

```
mount: unknown filesystem type 'lvm2pv'
```

----------

## manuels

Versuchst du da gerade ein Physical Volume von LVM zu mounten??

----------

## cITs

 *manuels wrote:*   

> Versuchst du da gerade ein Physical Volume von LVM zu mounten??

 

Ja, ich denke schon ... zumindest hab ich nach dem Verschlüsseln ein VG angelegt, wenn es das ist was du meinst.

```
cryptsetup -y --cipher aes-cbc-essiv:sha256 -s 256 luksFormat /dev/sda2

cryptsetup luksOpen /dev/sda2 bla

pvcreate /dev/mapper/bla

vgcreate gentoo /dev/mapper/bla

 
```

----------

## manuels

ok, so hast du das erstellt, aber wie mountest du?

so solltest du mounten können:

```
cryptsetup luksOpen /dev/sda2 bla

vgscan

vgchange -ay

mount /dev/bla/gentoo /mnt # (bin mir bei /dev/bla/gentoo nicht ganz sicher)

```

----------

## cITs

Der Verweis auf die verschlüsselte Partition ist unter 

```
/dev/mapper/bla
```

vgscan sagt mir das es die Gruppe "gentoo" gibt, aber 0 logical volumes laut vgchange (fangen die bei 0 an zu zählen?).

Ergebnis ist das gleiche, Filesystem lvm2pv ist unbekannt

Was ich vielleicht noch hinzufügen sollte: Ich hab 2 logical volumes auf der physical volum, einmal 512 MB für Swap und den Rest für Root (ca 75GB).

----------

## manuels

Aha, also mounten solltest du die Root-Partition so:

```
mount /dev/gentoo/$NAME_DES_ROOT_LOGICAL_VOLUMES /mnt
```

Falls das auch nicht klappt, bitte poste nicht nur die Fehlermeldung, sondern auch immer das dazugehörige Kommando mit.

EDIT:

 *Quote:*   

> vgscan sagt mir das es die Gruppe "gentoo" gibt, aber 0 logical volumes laut vgchange (fangen die bei 0 an zu zählen?). 

 Wenn du zwei Logical Volumes erstellt hast, aber <2 aufgelistet werden, läuft da was schief.

----------

## cITs

Die VG "gentoo" existiert unter /dev/ nicht, auch nicht in /dev/mapper/, das Kommando funktioniert nicht bzw wird nicht funktionieren.

Ich hab's trotzdem mal gemacht, siehe Code ganz unten. Kommandos wurden in der Reihenfolge durchgespielt

```

livecd / # cryptsetup luksOpen /dev/sda2 bla

Enter LUKS passphrase:

key slot 0 unlocked.

Command successful.

livecd / # vgscan

  Reading all physical volumes.  This may take a while...

  Found volume group "gentoo" using metadata type lvm2

livecd / # vgchange -ay

  0 logical volume(s) in volume group "gentoo" now active

livecd / # vgdisplay

  --- Volume group ---

  VG Name               gentoo

  System ID

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  1

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                0

  Open LV               0

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               74.43 GB

  PE Size               4.00 MB

  Total PE              19055

  Alloc PE / Size       0 / 0

  Free  PE / Size       19055 / 74.43 GB

  VG UUID               CapDGy-Ekrg-mVkM-8zln-j8nY-iRs8-d3z4Xr

livecd / # lvmdiskscan

  /dev/ram0  [        8.00 MB]

  /dev/loop0 [      589.66 MB]

  /dev/dm-0  [       74.44 GB] LVM physical volume

  /dev/ram1  [        8.00 MB]

  /dev/sda1  [       94.10 MB]

  /dev/ram2  [        8.00 MB]

  /dev/sda2  [       74.44 GB]

  /dev/ram3  [        8.00 MB]

  /dev/ram4  [        8.00 MB]

  /dev/ram5  [        8.00 MB]

  /dev/ram6  [        8.00 MB]

  /dev/ram7  [        8.00 MB]

  /dev/ram8  [        8.00 MB]

  /dev/ram9  [        8.00 MB]

  /dev/ram10 [        8.00 MB]

  /dev/ram11 [        8.00 MB]

  /dev/ram12 [        8.00 MB]

  /dev/ram13 [        8.00 MB]

  /dev/ram14 [        8.00 MB]

  /dev/ram15 [        8.00 MB]

  /dev/sdb1  [        1.86 GB]

  0 disks

  20 partitions

  0 LVM physical volume whole disks

  1 LVM physical volume

livecd / # mount /dev/gentoo/gentoo-root /mnt/gentoo/

mount: special device /dev/gentoo/gentoo-root does not exist

```

Ich raff grade nicht warum mir nur eine LV aufgelistet wird und nicht 2, oder zählt Swap in dem Fall gar nicht als Partition in LVM?

----------

## manuels

ok, und was sagt "lvdisplay"?

Wenn das sagt, dass keine Logical-Volumes exisiteren, musst du dein gentoo-root und swap neu mittels "lvcreate" erstellen.

----------

## cITs

lvdisplay und lvscan geben kein Ergebnis zurück. Fragt sich nur wie genau ich die LVs erstellen soll, überschreibe ich nicht damit die bisherige Einstellung?

Sieht aus als müsste ich neu aufsetzen, da ich neue LVs angelegt habe aber die nicht gemountet werden können. "No such file or directory"

----------

## manuels

Also, wie ich das sehe, hast du ein ziemliches Problem: die Logical-Volumes (gentoo-root und swap) existieren überhaupt nicht (mehr?).

Entweder hast du sie gelöscht, überschrieben oder gar nicht erstellt.

Wenn du die Logical Volumes wirklich in der Volume Group "gentoo" erstellt hast, sind sie anscheinend futsch.

----------

## cITs

Scheiße gelaufen. trotzdem danke für die Hilfe.

Edit: Hab jetzt neu aufgesetzt und ausversehen vergessen das Passwort zu setzen. Musst also nochmal durch die gleich Grütze, aber diesmal hat es geklappt. Anscheinend ist das letzte mal irgendwas beim schreiben der LVs nicht rund gelaufen, System läuft jetzt aber.

Danke nochmal für die Hilfe

----------

