Was ist der einfachste Weg, eine Festplattenpartition zu entschlüsseln?

Was ist der einfachste Weg, eine Festplattenpartition zu entschlüsseln?

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 kcryptddie 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 kcryptdbenutzerfreundlichere 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

  1. ein anderes Linux zum Booten (CD/DVD ist OK)
  2. etwas freier Speicherplatz außerhalb des PV (100 M wären gut)
  3. 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 pvscananschließend ausführen, damit das entschlüsselte Gerät erkannt wird. Anschließend vgchange -ay vg_centosmü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 pvmoveist dies erforderlich, bevor pvresizees 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.

verwandte Informationen