# DM-Crypt Partition verkleinern/Systeme parallel mit chroot?

## Finswimmer

Hi,

ich habe meine gesamte Partition sda3 mit DM-Crypt verschlüsselt.

Nun will ich 20Gb absplitten.

Ich möchte nicht, dass ich alle Daten auslagere, dann 2 Partitionen erstelle, diese dann einzeln verschlüssele und dann wieder alles zurückspiele.

Gibt es einen anderen Weg?

Mein Ziel ist es, 2 Gentoo Systeme zu bekommen, die unabhängig sind, da mein Laptop im Moment komplett Testing ist und das für die Uni sehr störend ist.

Danke

Tobi

----------

## ScytheMan

man cryptsetup gibt eine option namens resize an.

hast du evtl. mit lvm rumgebastelt? wenn ja, geht es denke ich ohne probleme.

----------

## Finswimmer

Hm. Nö.

So wie ich das noch in Erinnerung habe:

sda3 --> komplett mit cryptsetup verschlüsselt --> ext3 als 1 großes System

Sollte ich nun mit cryptsetup die Größe auf 40Gb setzen, dann die Partition splitten (wie?), dann hätte ich 2x den verschlüsselten Container.

Kann ich nicht irgendwie mit chroot oder ähnlichem arbeiten?

(Dass ich qausi auf / 2 Ordner anlege: /stable /unstable. Dort sind dann beide Systeme vorhanden?)

Tobi

----------

## Dorsai!

Du könntest folgendes probieren:

Erst musst du das Dateisystem verkleinern. Es kann nämlich gut sein, dass sich auch Daten in den Hinteren Blöcken der Partition befinden.

Diese würden sonst verloren gehen.

Wenn du CBC verwendest, dann sollte es nun reichen, die Partition mit fdisk bei der Größe ab zu hacken bis zu der du dein Dateisystem verkleinert hast.

Bei LRW oder XTS wird das ganze komplizierter, da hier meines Wissens nicht mehr jeder Sektor für sich verschlüsselt wird, sondern irgendwas durch gemischt. d.h. es ist eventuell mehr als nur der letzte Sektor nötig.

Wenn du cryptsetup mit der luks Erweiterung verwendest (was inzwischen auch das einzig Sinnvolle ist), dann reicht es nun wenn du das Volume öffnest. Die Größe dürfte automatisch angepasst werden.

Die resize Aktion ist nur für Cryptsetup ohne Luks.

Das kritischste wir das Verkleinern des Dateisystems. Mir würde auf Anhieb nicht einfallen wie das zu bewerkstelligen ist, da alle mir bekannten Programme nur Partitionen verkleinern können.

Einfach ginge es, wenn du mit LVMs im Volume arbeiten würdest. Evtl. könnte man ja auch das Dateisystem nachträglich in ein LVM-Volume stecken.

Mehr kann ich dir auf Anhieb auch nicht sagen, da ich bisher nur Partitionen vergrößert habe.

Edit: das Programm resize2fs kann ext3 verkleinern. Schau dir mal die Manpage an. Verwendest du CBC oder LRW/XTS?

Edit2: Sehe ich das Richtig? Du willst 2 Gentoo Systeme in einem Volume? Das wird schwierig bis unmöglich, da du dir dann dein eigenes initrd Script schreiben musst, weil das von Genkernel mit so etwas denke ich nicht umgehen kann. Einfacher wäre es zwei verschlüsselte Partitionen anzulegen, da ohne LVM zu nutzen ohnehin keine Zwei partitionen in ein LUKS Volume gehen.

----------

## mv

 *Dorsai! wrote:*   

> Wenn du CBC verwendest, dann sollte es nun reichen, die Partition mit fdisk bei der Größe ab zu hacken bis zu der du dein Dateisystem verkleinert hast.
> 
> Bei LRW oder XTS wird das ganze komplizierter

 

Nö. Der Unterschied zwischen CBC/LRW/XTS ist i.W. nur die Art, wie der Sektor verschlüsselt wird, weil der eigentlich Verschlüsselungsalgorithmus jeweils nur ein paar Bits verschlüsseln kann (je nach Algorithmus), und das halt viel weniger ist, als die Größe eines Sektors.

 *Quote:*   

> Das kritischste wir das Verkleinern des Dateisystems.

 

Kommt aufs Dateisystem an. Einige Dateisysteme bringen Tools dazu mit.

 *Quote:*   

> Einfach ginge es, wenn du mit LVMs im Volume arbeiten würdest.

 

Nö. Auch dann geht es nur um die Frage, ob das Dateisystem ein Tool hat, das es erlaubt, es zu verkleinern.

 *Quote:*   

> Wenn du cryptsetup mit der luks Erweiterung verwendest (was inzwischen auch das einzig Sinnvolle ist)

 

Man wird hoffentlich auch anderer Meinung sein dürfen. Aber das gehört nicht hierher.

 *Quote:*   

> Die resize Aktion ist nur für Cryptsetup ohne Luks.

 

Falcsh. Das Dateisystem muss in jedem Fall verkleinert werden.

----------

## Dorsai!

Ich liebe Stückelquotes...

 *mv wrote:*   

>  *Dorsai! wrote:*   Wenn du CBC verwendest, dann sollte es nun reichen, die Partition mit fdisk bei der Größe ab zu hacken bis zu der du dein Dateisystem verkleinert hast.
> 
> Bei LRW oder XTS wird das ganze komplizierter 
> 
> Nö. Der Unterschied zwischen CBC/LRW/XTS ist i.W. nur die Art, wie der Sektor verschlüsselt wird, weil der eigentlich Verschlüsselungsalgorithmus jeweils nur ein paar Bits verschlüsseln kann (je nach Algorithmus), und das halt viel weniger ist, als die Größe eines Sektors.

 

OK, das wusste ich nicht. Dann sollte das also kein Problem sein. Und es müsste reichen, wenn man das verschlüsselte Volume einfach hinten (nicht vorne, da steht der header) abhackt.

 *Quote:*   

>  *Quote:*   Das kritischste wir das Verkleinern des Dateisystems. 
> 
> Kommt aufs Dateisystem an. Einige Dateisysteme bringen Tools dazu mit.

 

...Wie, was ich auch schon im ersten Edit geschrieben hatte, es bei ext2/3/4 zum Beispiel mit resize2fs der Fall ist.

 *Quote:*   

>  *Quote:*   Einfach ginge es, wenn du mit LVMs im Volume arbeiten würdest. 
> 
> Nö. Auch dann geht es nur um die Frage, ob das Dateisystem ein Tool hat, das es erlaubt, es zu verkleinern.

 

Nur, das es dann wesentlich einfachere tools wie GParted gibt, die alles automatisieren. 

Außerdem kann er nur so zwei separate Partitionen in seinem Volume realisieren.

Im Grunde hast du aber natürlich recht. Am reinen Verkleinern des Dateisystem ändert das nichts.

 *Quote:*   

>  *Quote:*   Wenn du cryptsetup mit der luks Erweiterung verwendest (was inzwischen auch das einzig Sinnvolle ist) 
> 
> Man wird hoffentlich auch anderer Meinung sein dürfen. Aber das gehört nicht hierher.

 

Sry, ich hatte das IMHO vergessen. Du darfst natürlich anderer Meinung sein als ich  :Wink: . Wir sind ja hier nicht im dritten Reich. 

IMHO gäbe es aber wirklich keinen Grund cryptsetup ohne LUKS zu verwenden. Einige jedoch die IMHO dafür sprächen. 

Diesbezüglich können wir uns gerne per PM weiter unterhalten, solltest du daran interessiert sein.

 *Quote:*   

>  *Quote:*   Die resize Aktion ist nur für Cryptsetup ohne Luks. 
> 
> Falcsh. Das Dateisystem muss in jedem Fall verkleinert werden.

 

Sicher müsste auch das Dateisystem noch verkleinert werden. Das ändert aber nichts an meiner Aussage, dass die resize Aktion nur für Cryptsetup ohne LUKS notwendig ist.

Mit LUKS wird die Größe automatisch an die zur Verfügung stehende Partitionsgröße angepasst.

----------

## mv

 *Quote:*   

> IMHO gäbe es aber wirklich keinen Grund cryptsetup ohne LUKS zu verwenden.

 

Nur eine Bemerkung hierzu: Der Hauptnachteil von LUKS ist der Header. Dadurch ist es z.B. nicht möglich, aus einer verschlüsselten Partition (ohne Kopieren und wieder Rückspielen der Daten) eine unverschlüsselte zu machen oder umgekehrt.

 *Dorsai! wrote:*   

>  *Quote:*    *Quote:*   Die resize Aktion ist nur für Cryptsetup ohne Luks. 
> 
> Falcsh. Das Dateisystem muss in jedem Fall verkleinert werden. 
> 
> Sicher müsste auch das Dateisystem noch verkleinert werden. Das ändert aber nichts an meiner Aussage, dass die resize Aktion nur für Cryptsetup ohne LUKS notwendig ist.
> ...

 

Diesbezüglich besteht kein Unterschied zwischen LUKS/nicht-LUKS: Sobald Du eine neue Mapping kreierst, wird diese an die Partitionsgröße angepasst. Das Problem ist, dass Du keine neue Mapping kreieren kannst, wenn Du aus irgendeinem Grund die Partition nicht umounten kannst (z.B. weil es sich um Deine "/"-Partition handelt). In dem Fall muss man halt entweder neu Booten oder aber den resize-Parameter von cryptsetup benutzen. (Zwar habe ich es mit LUKS nicht getestet, aber es würde mich sehr wundern, wenn dieser einen Daemon startet, der auf die Veränderung einer Partitionsgröße automatisch regiert).

----------

## Finswimmer

So.

Ich habe ein bisschen rumgespielt, aber nichts geschafft.

Es muss doch möglich sein, mittels InitRD o.ä. das Verzeichnis /stable_system so zu mounten, dass man daraus direkt weiterbooten kann?

Tobi

----------

