
Ich habe den Fehler gemacht, das gesamte physische LVM-Volume (enthält sowohl Home, Root als auch Swap) zu verschlüsseln, als ich eine CentOS 6.4-Box (2.6.32-358.6.1.el6.x86_64) installierte. Ich erkannte bald, dass das Verschieben von Dateien furchtbar viel Zeit in Anspruch nimmt, da kcryptd
die CPU zu 90 % ausgelastet ist, und dass eine Verschlüsselung nicht wirklich notwendig ist, da es sich nur um einen Home-Server handelt, der keine wichtigen Daten enthält. Ich habe ihn jedoch bereits konfiguriert und zahlreiche Pakete installiert, die Energieverwaltung optimiert und alle Dienste eingerichtet.
Gibt es eine Möglichkeit, die Verschlüsselung zu entfernen, ohne das Ganze neu installieren und die Konfiguration noch einmal durchführen zu müssen? Ich hätte gern eine Option, die weniger als 30 Minuten dauert, aber ich bin nicht sicher, ob es eine gibt.
Und wenn Sie Empfehlungen für eine kcryptd
benutzerfreundlichere Gestaltung haben, lassen Sie es mich wissen.
Bearbeiten 1
~]# fdisk -l /dev/sda
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000078c9
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 19458 155777024 83 Linux
~]# dmsetup ls
vg_centos-lv_home (253:3)
vg_centos-lv_swap (253:2)
vg_centos-lv_root (253:1)
luks-2ffcc00c-6d6e-401c-a32c-9c82995ad372 (253:0)
~]# pvdisplay
--- Physical volume ---
PV Name /dev/mapper/luks-2ffcc00c-6d6e-401c-a32c-9c82995ad372
VG Name vg_centos
PV Size 148.56 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 38030
Free PE 0
Allocated PE 38030
PV UUID euUB66-TP3M-ffKp-WhF5-vKI5-obqK-0qKoyZ
Bearbeiten 2
~]# df -h / /home /boot
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_centos-lv_root
50G 2.3G 45G 5% /
/dev/mapper/vg_centos-lv_home
94G 1.3G 88G 2% /home
/dev/sda1 485M 53M 408M 12% /boot
Antwort1
Das ist möglich. Es erfordert
- ein anderes Linux zum Booten (CD/DVD ist OK)
- etwas freier Speicherplatz außerhalb des PV (100 M wären gut)
- eine gewisse Furchtlosigkeit...
Anschließend kopiert man einen Block vom verschlüsselten Volume in den Bereich außerhalb des PV und (bei Erfolg) auf das unverschlüsselte Basisgerät. Anschließend erhöht man im sicheren Bereich einen Zähler, um im Falle eines Absturzes die Transformation fortsetzen zu können. Je nach Art der Verschlüsselung kann es notwendig (oder zumindest sinnvoll) sein, vom Ende des Blockgeräts an den Anfang zu kopieren.
Wenn dies eine Option für Sie ist, kann ich Ihnen einen Code anbieten.
Bearbeiten 1
Deaktivieren Sie die Swap-Partition (kommentieren Sie sie in aus etc/fstab
). Booten Sie dann ein anderes Linux (von CD/DVD) und öffnen Sie das LUKS-Volume ( cryptsetup luksOpen /dev/sda2 lukspv
), mounten Sie die LVs jedoch nicht. Eventuell müssen Sie pvscan
anschließend ausführen, damit das entschlüsselte Gerät erkannt wird. Anschließend vgchange -ay vg_centos
müssen Sie möglicherweise die Volumes aktivieren. Sobald sie aktiviert sind, können Sie die darin enthaltenen Dateisysteme reduzieren:
e2fsck -f /dev/mapper/vg_centos-lv_root
resize2fs -p /dev/mapper/vg_centos-lv_root 3000M
e2fsck -f /dev/mapper/vg_centos-lv_home
resize2fs -p /dev/mapper/vg_centos-lv_home 2000M
Anschließend können Sie die Größe der LVs reduzieren (und das Swap-LV löschen):
# with some panic reserve... shouldn't be necessary
lvresize --size 3100M /dev/mapper/vg_centos-lv_root
lvresize --size 2100M /dev/mapper/vg_centos-lv_home
lvremove /dev/mapper/vg_centos-lv_swap
# vgdisplay should show now that most of the VG is free space
vgdisplay
Nun kann der PV reduziert werden (spannend, habe ich selbst noch nie gemacht ;-) ):
vgchange -an vg_centos
pvresize --setphysicalvolumesize 5500M /dev/mapper/lukspv
Bearbeiten:Möglicherweise pvmove
ist dies erforderlich, bevor pvresize
es aufgerufen werden kann. Im Fehlerfall siehediese Frage.
Bevor Sie die Partitionsgröße reduzieren, sollten Sie eine Sicherungskopie der Partitionstabelle erstellenund auf einem externen Speichergerät speichern.
sfdisk -d /dev/sda >sfdisk_dump_sda.txt
Mit dieser Datei könnt ihr die Größe der LUKS-Partition reduzieren. Passt die Größe (in Sektoren) auf ca. 6 GiB an (Panikreserve wieder...): 12582912. Ladet dann die angepasste Datei:
sfdisk /dev/sda <sfdisk_dump_sda.mod.txt
Wenn nach dem Neustart alles gut aussieht, können Sie im freien Speicherplatz eine neue Partition erstellen (am besten nicht den gesamten Speicherplatz beanspruchen, Sie wissen wahrscheinlich inzwischen warum...) und diese zu einer LVM-Partition machen. Machen Sie die Partition dann zu einem LVM PV ( pvcreate
), erstellen Sie eine neue Volume-Gruppe ( vgcreate
) und logische Volumes für Root, Home und Swap ( lvcreate
) und formatieren Sie diese ( mke2fs -t ext4
, mkswap
). Anschließend können Sie den Inhalt der geöffneten Crypto-Volumes kopieren. Abschließend müssen Sie Ihren Bootloader neu konfigurieren, damit er das neue Root-Dateisystem verwendet.
Das eingangs erwähnte Blockkopieren ist aufgrund des großen freien Speicherplatzes nicht erforderlich.