LVM <-> DM-Crypt/Luks grundsaetzliches Verstaendnis

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

LVM <-> DM-Crypt/Luks grundsaetzliches Verstaendnis

Beitrag von roli » 19.11.2007 13:49:30

Hi,

ich bin dabei mich mit LVM und verschluesselten Partitionen mittels DM-Crypt/Luks zu beschäftigen. Noch fehlt es mir aber am grundsaetzlichen Verstaendnis. Ich habe derzeit zwei Fragen:
1) Was ist besser, erst LVM und dann darin mittels DM-Crypt die verschluesselte Partition, oder erst DM-Crypt und darin LVM? Interessant ist, fuer mich, vor allem das warum!
2) Kann ich eine gecryptete Partition spaeter in der Groesse veraendern?

Danke
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Re: LVM <-> DM-Crypt/Luks grundsaetzliches Verstaendnis

Beitrag von Lohengrin » 22.11.2007 14:43:42

roli hat geschrieben:1) Was ist besser, erst LVM und dann darin mittels DM-Crypt die verschluesselte Partition, oder erst DM-Crypt und darin LVM? Interessant ist, fuer mich, vor allem das warum!
Ich hab erst DM-Crypt und dann LVM. Ich vermute, dass ich, wenn mehrere Partitionen verschlüsselt sind, mehrmals ein Passwort eingeben muss. Das habe ich aber nicht ausprobiert.
roli hat geschrieben:2) Kann ich eine gecryptete Partition spaeter in der Groesse veraendern?
Keine Ahnung. Warum sollte man das tun?
Zusätzliche Platte rein und einmal hin und einmal herkopieren tut es doch auch.

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: LVM <-> DM-Crypt/Luks grundsaetzliches Verstaendnis

Beitrag von roli » 22.11.2007 15:07:05

Hi Lohengrin,

mir geht es im Moment darum grundsaetzliche Dinge zu erfahren, ob ich jemals eine Partition vergroessere/verkleinere sei mal dahingestellt.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: LVM <-> DM-Crypt/Luks grundsaetzliches Verstaendnis

Beitrag von Danielx » 23.11.2007 01:46:17

Hallo,

zu 1):
  • Das kommt darauf an was du erreichen willst.
    - Letzteres hat den Vorteil, dass für das gesamte LVM das gleiche Passwort gilt und somit auch beim Booten alle darin enthaltenen LVs auf einmal (auch swap) entschlüsselt werden, weshalb dann auch suspend-to-disk funktioniert.
    - Ersteres hat den Vorteil, dass du jedem LV ("Partition") ein eigenes Passwort zuteilen kannst. Allerdings funktioniert dann erstmal suspend-to-disk nicht. Angeblich soll es in dieser Konstellation auch schon zu seltsamen Problemen bei der Zusammenarbeit mit DM-Crypt gekommen sein, ob das noch so ist weiß ich nicht.
zu 2):
  • Ja, das funktioniert.
    Wenn du das gesamte LVM verschlüsselt hast und in den LVs ext2/ext3 einsetzt funktioniert das in groben Schritten so:

    verkleinern:
    1) umount
    2) evtl. Dateisystem mit e2fsck checken
    3) Dateisystem mit resize2fs verkleinern und danach das LV mit lvreduce verkleinern.
    Nicht andersherum, sonst gehen die Daten im LV verloren.
    4) mounten

    vergrößern:
    1) umount
    2) evtl. Dateisystem mit e2fsck checken
    3) LV mit lvextend vergrößern
    4) Dateisystem mit resize2fs vergrößern
    5) mounten
Gruß,
Daniel

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 23.11.2007 10:29:48

Hi Danielx,

danke fuer die Info's, damit kann man doch schon mal was anfangen.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 23.11.2007 23:18:05

Hm, mir ist gerade aufgefallen, dass es bei der Methode "DM-Crypt und darin LVM" anscheinend nicht möglich ist die Volume Group (VG) durch Hinzufügen eines oder mehrerer Physical Volume (PV) zu erweitern.
Dies liegt daran, dass beim Booten nur die bei der Installation eingerichtete Partition (PV der VG) vor dem eigentlichen Systemstart entschlüsselt wird.
LVM kann also auf ein weiteres verschlüsseltes PV beim Systemstart nicht rechtzeitig zugreifen.

Das Verkleinern bzw. Vergrößern von LVs funktioniert aber wie ich beschrieben habe.
Da ja aber die VG nicht erweitert werden kann, muss vor dem Vergrößern eines LVs der benötigte Speicherplatz einer anderen LV (durch deren Verkleinerung) abgenommen werden.

Gruß,
Daniel

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Beitrag von Lohengrin » 24.11.2007 19:15:43

Danielx hat geschrieben:Hm, mir ist gerade aufgefallen, dass es bei der Methode "DM-Crypt und darin LVM" anscheinend nicht möglich ist die Volume Group (VG) durch Hinzufügen eines oder mehrerer Physical Volume (PV) zu erweitern.
Dies liegt daran, dass beim Booten nur die bei der Installation eingerichtete Partition (PV der VG) vor dem eigentlichen Systemstart entschlüsselt wird.
Wo steht eigentlich welche das ist? Ich vermute in der Initrd.
An der Stelle müsste man etwas umschreiben.
Danielx hat geschrieben:Das Verkleinern bzw. Vergrößern von LVs funktioniert aber wie ich beschrieben habe.
Da ja aber die VG nicht erweitert werden kann, muss vor dem Vergrößern eines LVs der benötigte Speicherplatz einer anderen LV (durch deren Verkleinerung) abgenommen werden.
Damit sind wir bei Frage 2 von roli:
Kann man eine mit dmcrypt formatierte Partition vergrößern oder verkleinern?

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 25.11.2007 03:02:09

Lohengrin hat geschrieben:Wo steht eigentlich welche das ist? Ich vermute in der Initrd.
An der Stelle müsste man etwas umschreiben.
Ja, genau.
Um den Inhalt der initrd anzusehen kannst du diese entpacken:

Code: Alles auswählen

mkdir tmp/initrd
cd tmp/initrd
gunzip -c -9 /boot/initrd.img-2.6.18-5-686 | cpio -i -d -H newc --no-absolute-filename
Das dort enthaltene Skript "cryptoroot" hat damit etwas zu tun, habe es mir aber noch nicht genau angesehen.
Lohengrin hat geschrieben:Damit sind wir bei Frage 2 von roli:
Kann man eine mit dmcrypt formatierte Partition vergrößern oder verkleinern?
Du meinst jetzt eine "echte" Partition (also kein LV oder so).

Also das Verkleinern einer verschlüsselten Partition ist sicher nicht möglich.

Vergrößern geht mit parted leider nicht, da parted kein Dateisystem auf der verschlüsselten Partition vorfindet (Daten auf der Partition sind ja ohne Entschlüsselung scheinbar nur Datenmüll) und deshalb abbricht.
Allerdings scheint es mit fdisk möglich zu sein eine verschlüsselte Partition zu vergrößern indem man sich den Start- und End-Zylinder der Partition merkt, diese dann löscht und eine neue Partition mit demselben Start-Zylinder aber einem größeren End-Zylinder anlegt.
Siehe dazu auch hier:
http://www.enigmacurry.com/2007/04/28/r ... ilesystem/
Run fdisk (or your favorite clone), and jot down the start and end block of the partition you want to keep. In my case it was the first partition and it was on block 1.

Now delete all of the partitions you want to delete as well as the encrypted partition. "WTF?" I hear you say? Yes, that's right, DELETE the encrypted partition. This doesn't actually delete any data mind you, and as long as you correctly remembered the start and end block of the partition you are perfectly safe in doing this.

Now create a NEW partition with the same start block as you originally had. Make the end block anything larger than the original end block. Save your changes.
Aber bitte nicht ohne Backup ausprobieren. :)

Gruß,
Daniel

edit: g von gunzip ergänzt

Benutzeravatar
minimike
Beiträge: 5616
Registriert: 26.03.2003 02:21:19
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Köln
Kontaktdaten:

Beitrag von minimike » 26.11.2007 01:29:51

Ich benutze auf dem Desktop ein normales LVM mit 3 mal 400 GB Platten wo die Logical Volumes verschlüsselt sind. Vorteile, ich habe z.B. /usr nicht verschlüsselt was mehr an Performance hat, Physical Volumes lassen sich erweitern bzw Partitionen entfernen was anders herum nicht geht. Das ist wichtig wenn man ein Physical Volume stückweise auf grössere Datenträger migrieren möchte. Die Grössen von verschlüsselten Partitionen/Datenträgern lassen sich nachträglich ändern. Bei Physical Volumes klappte das nicht.
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Beitrag von Lohengrin » 26.11.2007 18:38:35

Danielx hat geschrieben:
Lohengrin hat geschrieben:Wo steht eigentlich welche das ist? Ich vermute in der Initrd.
An der Stelle müsste man etwas umschreiben.
Ja, genau.
Um den Inhalt der initrd anzusehen kannst du diese entpacken:

Code: Alles auswählen

mkdir tmp/initrd
cd tmp/initrd
gunzip -c -9 /boot/initrd.img-2.6.18-5-686 | cpio -i -d -H newc --no-absolute-filename
Das dort enthaltene Skript "cryptoroot" hat damit etwas zu tun, habe es mir aber noch nicht genau angesehen.
Danke. Das habe ich gesucht.
Bei mir steht in (initrd)/conf/conf.d/cryptroot

Code: Alles auswählen

target=hdc6_crypt,source=/dev/hdc6,key=none,lvm=wupp-schwupp
Diese Zeile muss ich wohl anpassen, wenn ich an meinem LVM rumspiele und nachher wieder dort hinein booten will.
Danielx hat geschrieben:
Lohengrin hat geschrieben:Damit sind wir bei Frage 2 von roli:
Kann man eine mit dmcrypt formatierte Partition vergrößern oder verkleinern?
Du meinst jetzt eine "echte" Partition (also kein LV oder so).
Ich dachte, dmcrypt sei ein Dateisystem, so wie ext3, was man mit resize anpassen müsste. Aber es ist wohl anders (su).
Danielx hat geschrieben:Also das Verkleinern einer verschlüsselten Partition ist sicher nicht möglich.
Wie kommst du darauf (su)?
Danielx hat geschrieben:Allerdings scheint es mit fdisk möglich zu sein eine verschlüsselte Partition zu vergrößern indem man sich den Start- und End-Zylinder der Partition merkt, diese dann löscht und eine neue Partition mit demselben Start-Zylinder aber einem größeren End-Zylinder anlegt.
Siehe dazu auch hier:
http://www.enigmacurry.com/2007/04/28/r ... ilesystem/
Sehr interessant. Damnach kann ich in der entschlüsselten /dev/mapper/root genauso herummachen, als sei es die /dev/sda1. Hängt der neue Platz auch auf /dev/mapper/root genauso hinten dran wie er es auf /dev/sda1 tut? Wie sonst könnte resize2fs ihn finden?
Das müsste dann aber auch andersherum gehen: Entschlüsseln und das Dateisystem auf /dev/mapper/root verkleinern. Später den hinteren Platz von /dev/sda1 mit fdisk freigeben.

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 27.11.2007 03:41:50

Lohengrin hat geschrieben:Wie kommst du darauf (su)?
Hatte mich getäuscht, funktioniert doch (siehe unten).
Lohengrin hat geschrieben:Hängt der neue Platz auch auf /dev/mapper/root genauso hinten dran wie er es auf /dev/sda1 tut?
Ja.
Lohengrin hat geschrieben:Das müsste dann aber auch andersherum gehen: Entschlüsseln und das Dateisystem auf /dev/mapper/root verkleinern. Später den hinteren Platz von /dev/sda1 mit fdisk freigeben.
Richtig, ich habe das auch gleich mal getestet:

Partition Nr.8 (sda8) verchlüsseln, ext3-Dateisystem erstellen und mounten:

Code: Alles auswählen

cryptsetup luksFormat /dev/sda8
cryptsetup luksOpen /dev/sda8 test
mkfs.ext3 /dev/mapper/test
mount /dev/mapper/test /mnt/test
Partition mit mehreren Dateien vollständig füllen und teilweise wieder löschen (um eine Fragmentierung zu erreichen), so dass von 450602KB schon 385618KB belegt sind.
md5-Summen der Dateien berechnen und speichern, um nachher festzustellen, ob alle Daten noch ok sind.

Unmounten und Dateisystem auf 400000KB verkleinern:

Code: Alles auswählen

umount /mnt/test
resize2fs -p /dev/mapper/test 400000K
cryptsetup luksClose test
Ausgabe von fdisk für Partition Nr. 8:
Start-Zylinder: 465
End-Zylinder: 522

fdisk sagt:
cylinders of 16065 * 512 = 8225280 bytes
=> Ein Zylinder hat also 8225280 Byte

Ausrechnen, wie viele Zylinder 400000KB sind:

Code: Alles auswählen

400000*1024/8225280 = 49,79
=> 50 Zylinder

Neuen End-Zylinder ausrechnen:

Code: Alles auswählen

465 + 50 - 1 = 514
514 + 1 = 515 (zur Sicherheit)
Einen Zylinder habe ich sicherheitshalber mal zugegeben (war aber wahrscheinlich gar nicht nötig, siehe unten).
Von 465 bis 515 sind es 51 Zylinder, da sowohl der erste als auch der letzte Zylinder mitzählt.

Mit fdisk Partition Nr. 8 löschen und neu anlegen:
Start-Zylinder: 465
End-Zylinder: 515

Dann habe ich im freigewordenen Platz wieder eine neu Partition Nr. 9 (Zylinder 516 bis 522) angelegt und diese formatiert.
Dann mit Dateien gefüllt und deren md5-Summen berechnet.

Jetzt wieder zu Partition Nr. 8:
Da ich ja etwas Luft (etwas mehr als 1 Zylinder) zwischen Partitionsgröße und Dateisystemgröße gelassen hatte, habe ich das Dateisystem wieder bis zum Maximum vergrößert:

Code: Alles auswählen

cryptsetup luksOpen /dev/sda8 test
resize2fs -p /dev/mapper/test
=> meldet neue Größe: 409108KB (waren also noch 9108KB Luft)

Jetzt wird es spannend:

Code: Alles auswählen

mount /dev/mapper/test /mnt/test
md5-Summen verglichen => stimmen überein, alle Daten ok!

Um letzte Gewissheit zu haben, dass wirklich alles funktioniert hat, habe ich dann noch auf den beiden Partitionen (Nr. 8 und dahinterliegend Nr. 9) Dateien erstellt, gelöscht und die Partitionen vollständig gefüllt und jeweils auf beiden Partitionen immer wieder die md5-Summen überprüft.
=> Alles OK. :-)

Also sowohl das Verkleinern als auch das Vergrößern einer Partition auf der sich ein dm-crypt-verschlüsseltes Volume (LUKS) befindet (darin dann eine ext3-Dateisystem) ist ohne Datenverlust möglich!

Gruß,
Daniel

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Beitrag von Lohengrin » 27.11.2007 10:51:35

Danke, DanielX!
Ich hatte gerade weder Hardware noch Zeit so etwas auszuprobieren. Gut zu wissen dass und wie es geht.

Elbenfreund
Beiträge: 7
Registriert: 10.07.2006 15:50:27

Beitrag von Elbenfreund » 01.12.2007 13:10:22

Hallo Forum,

da ich mich nach wie vor noch nciht so recht in LVM eingearbeitet habe bin ich etwas verunsichert. Stoße ich im Zweifelsfall auf Probleme wenn ich die Platte ausbaue und die Platte bzw. Partitionen (z. B. extern) anderweitig auf einem anderen System einbinden möchte? Bedarf es in einem solchen Fall des ganz großen LVM-Voodozaubers (z-B. wenn Rechner kaputt) oder kommt man im zweifelsfall recht gut an die Daten (wenn dm_crypt support und pw vorhanden natürlich)

Danke und Gruß; Eric.

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Beitrag von Lohengrin » 01.12.2007 19:46:51

Elbenfreund hat geschrieben:da ich mich nach wie vor noch nciht so recht in LVM eingearbeitet habe bin ich etwas verunsichert. Stoße ich im Zweifelsfall auf Probleme wenn ich die Platte ausbaue und die Platte bzw. Partitionen (z. B. extern) anderweitig auf einem anderen System einbinden möchte? Bedarf es in einem solchen Fall des ganz großen LVM-Voodozaubers (z-B. wenn Rechner kaputt) oder kommt man im zweifelsfall recht gut an die Daten (wenn dm_crypt support und pw vorhanden natürlich)
Ich habe das vor ein paar Monaten ausprobiert. Mit Knoppix 5.1.1 (CD) kommt man an die Daten ran.
Ich habe das primäre Volumen mit cryptsetup luksOpen /dev/sda8 doof entschlüsselt. Danach hat lvscan alles gefunden, und ich konnte mit zB mount /dev/mapper/schnipp-schnapp /tmp/irgendwas mounten.

Antworten