Qual é a maneira mais fácil de descriptografar uma partição de disco?

Qual é a maneira mais fácil de descriptografar uma partição de disco?

Cometi um erro ao criptografar todo o volume físico do LVM (contém home, root e swap) ao instalar uma caixa CentOS 6.4 (2.6.32-358.6.1.el6.x86_64). Logo percebi que mover arquivos leva muito tempo devido à kcryptdexecução de 90% da CPU e que a criptografia não era realmente necessária, pois é apenas um servidor doméstico que não contém dados cruciais. Porém, já configurei e instalei vários pacotes, ajustei no que diz respeito ao gerenciamento de energia e configurei todos os serviços.

Existe alguma maneira de remover a criptografia sem ter que reinstalar tudo e passar pela configuração novamente? Eu adoraria uma opção que levasse menos de 30 minutos, mas não tenho certeza se existe alguma.

Além disso, se alguém tiver alguma recomendação sobre como facilitar kcryptdo uso, me avise.

Editar 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

Editar 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

Responder1

Isso é possível. Isso requer

  1. outro Linux para inicializar (CD/DVD está OK)
  2. algum espaço livre fora do PV (100M seria bom)
  3. uma certa dose de destemor...

Em seguida, você copia um bloco do volume criptografado para a área fora do PV e (após sucesso) para o dispositivo base não criptografado. Depois disso você aumenta um contador na área segura para poder continuar a transformação em caso de acidente. Dependendo do tipo de criptografia pode ser necessário (ou pelo menos útil) copiar do final do dispositivo de bloco para o início.

Se esta for uma opção para você, posso oferecer algum código.

Editar 1

Desative a partição swap (comente em etc/fstab). Em seguida, inicialize outro Linux (a partir de CD/DVD) e abra o volume LUKS ( cryptsetup luksOpen /dev/sda2 lukspv), mas não monte os LVs. Talvez você precise executar pvscandepois para que o dispositivo descriptografado seja reconhecido. Então vgchange -ay vg_centospode ser necessário ativar os volumes. Assim que estiverem, você poderá reduzir os sistemas de arquivos neles:

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

Depois disso, você pode reduzir o tamanho dos LVs (e excluir o LV de swap):

# 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

Agora o PV pode ser reduzido (emocionante, nunca fiz isso ;-)):

vgchange -an vg_centos
pvresize --setphysicalvolumesize 5500M /dev/mapper/lukspv

Editar:Talvez pvmoveseja necessário antespvresize possa ser chamado. Em caso de erro consulteessa questão.

Antes de reduzir o tamanho da partição você deve fazer um backup da tabela de partiçõese armazene-o em armazenamento externo.

sfdisk -d /dev/sda >sfdisk_dump_sda.txt

Você pode usar este arquivo para reduzir o tamanho da partição LUKS. Adapte o tamanho (em setores) para cerca de 6 GiB (reserva de pânico novamente...): 12582912. Em seguida carregue o arquivo adaptado:

sfdisk /dev/sda <sfdisk_dump_sda.mod.txt

Se tudo parecer bem após a reinicialização, você pode criar uma nova partição no espaço livre (na melhor das hipóteses, sem consumir todo o espaço, você provavelmente sabe por quê...) e torná-la uma partição LVM. Em seguida, torne a partição um LVM PV ( pvcreate), crie um novo grupo de volumes ( vgcreate) e volumes lógicos para root, home e swap ( lvcreate) e formate-os ( mke2fs -t ext4, mkswap). Então você pode copiar o conteúdo dos volumes criptográficos abertos. Finalmente você tem que reconfigurar seu gerenciador de boot para que ele use o novo rootfs.

A cópia em bloco que mencionei no início não é necessária devido à grande quantidade de espaço livre.

informação relacionada