
Я допустил ошибку, зашифровав весь физический том LVM (содержащий как домашний, так и корневой и swap) при установке CentOS 6.4 (2.6.32-358.6.1.el6.x86_64). Вскоре я понял, что перемещение файлов занимает ужасно много времени из-за kcryptd
работы на 90% ЦП, и что шифрование на самом деле не было необходимым, поскольку это просто домашний сервер, не содержащий важных данных. Однако я уже настроил его и установил множество пакетов, настроил его в плане управления питанием и настроил все службы.
Есть ли способ удалить шифрование без необходимости переустанавливать все заново и заново проходить через конфигурацию? Я бы с удовольствием нашел вариант, который займет меньше 30 минут, но я не уверен, что такой существует.
Также, если у кого-то есть рекомендации, как сделать его kcryptd
более удобным в использовании, дайте мне знать.
Редактировать 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
Редактировать 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
решение1
Это возможно. Для этого требуется
- еще один Linux для загрузки (CD/DVD подойдут)
- некоторое свободное пространство снаружи фотоэлектрического модуля (100 М было бы хорошо)
- определенная доля бесстрашия...
Затем вы копируете блок из зашифрованного тома в область за пределами PV и (после успеха) на незашифрованное базовое устройство. После этого вы увеличиваете счетчик в безопасной области, чтобы иметь возможность продолжить преобразование в случае сбоя. В зависимости от типа шифрования может быть необходимо (или, по крайней мере, полезно) копировать из конца блочного устройства в начало.
Если это для вас вариант, то я могу предложить вам код.
Редактировать 1
Деактивируйте раздел подкачки (закомментируйте его в etc/fstab
). Затем загрузите другой Linux (с CD/DVD) и откройте том LUKS ( cryptsetup luksOpen /dev/sda2 lukspv
), но не монтируйте LV. Возможно, вам нужно будет запустить его pvscan
после этого, чтобы расшифрованное устройство было распознано. Затем vgchange -ay vg_centos
может потребоваться активировать тома. Как только они будут распознаны, вы можете уменьшить файловые системы в них:
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
После этого вы можете уменьшить размер LV (и удалить LV подкачки):
# 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
Теперь PV можно уменьшить (захватывающе, я сам никогда этого не делал ;-) ):
vgchange -an vg_centos
pvresize --setphysicalvolumesize 5500M /dev/mapper/lukspv
Редактировать:Может быть, pvmove
необходимо перед тем, pvresize
как можно будет вызвать. В случае ошибки см.этот вопрос.
Перед уменьшением размера раздела следует сделать резервную копию таблицы разделов.и сохранить его на внешнем хранилище.
sfdisk -d /dev/sda >sfdisk_dump_sda.txt
Вы можете использовать этот файл для уменьшения размера раздела LUKS. Измените размер (в секторах) примерно до 6 GiB (снова резерв паники...): 12582912. Затем загрузите адаптированный файл:
sfdisk /dev/sda <sfdisk_dump_sda.mod.txt
Если после перезагрузки все выглядит хорошо, вы можете создать новый раздел в свободном пространстве (в лучшем случае не занимая все пространство, вы, вероятно, знаете, почему...) и сделать его разделом LVM. Затем сделайте раздел LVM PV ( pvcreate
), создайте новую группу томов ( vgcreate
) и логические тома для root, home и swap ( lvcreate
) и отформатируйте их ( mke2fs -t ext4
, mkswap
). Затем вы можете скопировать содержимое открытых криптотомов. Наконец, вам нужно перенастроить ваш загрузчик так, чтобы он использовал новую rootfs.
Блочное копирование, о котором я упоминал в начале, не является необходимым из-за большого объема свободного места.