Какой самый простой способ расшифровать раздел диска?

Какой самый простой способ расшифровать раздел диска?

Я допустил ошибку, зашифровав весь физический том 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

Это возможно. Для этого требуется

  1. еще один Linux для загрузки (CD/DVD подойдут)
  2. некоторое свободное пространство снаружи фотоэлектрического модуля (100 М было бы хорошо)
  3. определенная доля бесстрашия...

Затем вы копируете блок из зашифрованного тома в область за пределами 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.

Блочное копирование, о котором я упоминал в начале, не является необходимым из-за большого объема свободного места.

Связанный контент