
Cometí un error al cifrar todo el volumen físico LVM (contiene home, root y swap) al instalar una caja CentOS 6.4 (2.6.32-358.6.1.el6.x86_64). Pronto me di cuenta de que mover archivos requiere una enorme cantidad de tiempo debido a que kcryptd
se ejecuta al 90% de la CPU y que el cifrado no era realmente necesario ya que es solo un servidor doméstico que no contiene datos cruciales. Sin embargo, ya lo configuré e instalé muchos paquetes, lo ajusté en lo que respecta a la administración de energía y configuré todos los servicios.
¿Hay alguna forma de eliminar el cifrado sin tener que reinstalar todo y realizar la configuración nuevamente? Me encantaría una opción que tomaría menos de 30 minutos, pero no estoy seguro de que exista.
Además, si alguien tiene alguna recomendación sobre cómo hacerlo kcryptd
más fácil de usar, hágamelo saber.
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
Respuesta1
Eso es posible. Requiere
- otro Linux para arrancar (CD/DVD está bien)
- algo de espacio libre fuera del fotovoltaico (100M sería bueno)
- cierta cantidad de valentía...
Luego copia un bloque del volumen cifrado al área fuera del PV y (después del éxito) al dispositivo base no cifrado. Después de eso, aumentas un contador en el área segura para que puedas continuar la transformación en caso de un accidente. Dependiendo del tipo de cifrado, puede ser necesario (o al menos útil) copiar desde el final del dispositivo de bloque hasta el principio.
Si esta es una opción para usted, puedo ofrecerle algún código.
Editar 1
Desactive la partición de intercambio (coméntela en etc/fstab
). Luego inicie otro Linux (desde CD/DVD) y abra el volumen LUKS ( cryptsetup luksOpen /dev/sda2 lukspv
) pero no monte los LV. Tal vez necesite ejecutar pvscan
después para que se reconozca el dispositivo descifrado. Entonces vgchange -ay vg_centos
puede ser necesario activar los volúmenes. Tan pronto como lo estén, puede reducir los sistemas de archivos que contienen:
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
Después de eso, puede reducir el tamaño de los LV (y eliminar el LV de intercambio):
# 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
Ahora el PV se puede reducir (emocionante, nunca lo he hecho yo mismo ;-)):
vgchange -an vg_centos
pvresize --setphysicalvolumesize 5500M /dev/mapper/lukspv
Editar:Quizás pvmove
sea necesario antes de pvresize
poder ser llamado. En caso de error veresta pregunta.
Antes de reducir el tamaño de la partición, debe hacer una copia de seguridad de la tabla de particiones.y guárdelo en un almacenamiento externo.
sfdisk -d /dev/sda >sfdisk_dump_sda.txt
Puede utilizar este archivo para reducir el tamaño de la partición LUKS. Adapte el tamaño (en sectores) a unos 6 GiB (reserva de pánico otra vez...): 12582912. Luego cargue el archivo adaptado:
sfdisk /dev/sda <sfdisk_dump_sda.mod.txt
Si todo se ve bien después de reiniciar, puede crear una nueva partición en el espacio libre (en el mejor de los casos, sin consumir todo el espacio, mientras tanto probablemente sepa por qué...) y convertirla en una partición LVM. Luego convierta la partición en un LVM PV ( pvcreate
), cree un nuevo grupo de volúmenes ( vgcreate
) y volúmenes lógicos para raíz, inicio e intercambio ( lvcreate
) y formatéelos ( mke2fs -t ext4
, mkswap
). Luego puede copiar el contenido de los volúmenes criptográficos abiertos. Finalmente tienes que reconfigurar tu gestor de arranque para que utilice el nuevo rootfs.
La copia en bloque que mencioné al principio no es necesaria debido a la gran cantidad de espacio libre.