디스크 파티션의 암호를 해독하는 가장 쉬운 방법은 무엇입니까?

디스크 파티션의 암호를 해독하는 가장 쉬운 방법은 무엇입니까?

CentOS 6.4(2.6.32-358.6.1.el6.x86_64) 상자를 설치할 때 전체 LVM 물리 볼륨(홈, 루트 및 스왑 포함)을 실수로 암호화했습니다. kcryptdCPU 사용량이 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. PV 외부에 약간의 여유 공간이 있습니다(100M이면 충분합니다).
  3. 어느 정도의 무감각함…

그런 다음 블록은 암호화된 볼륨에서 PV 외부 지역으로 복사되고 (성공 시) 암호화되지 않은 기본 장치로 복사됩니다. 그런 다음 충돌이 발생해도 변환이 계속될 수 있도록 안전 영역에서 카운터를 증가시킵니다. 암호화 유형에 따라 블록 장치의 끝에서 처음까지 복사하는 것이 필요할 수 있습니다(또는 적어도 유용할 수 있습니다).

이것이 귀하의 선택이라면 몇 가지 코드를 제공할 수 있습니다.

편집 1

스왑 파티션을 비활성화합니다( 에서 주석 처리 etc/fstab). 그런 다음 CD/DVD에서 다른 Linux를 부팅하고 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 파티션의 크기를 줄일 수 있습니다. 크기(섹터 단위)를 약 6GiB로 조정했습니다(다시 패닉 예약...): 12582912. 그런 다음 조정된 파일을 로드합니다.

sfdisk /dev/sda <sfdisk_dump_sda.mod.txt

재부팅 후 모든 것이 괜찮아 보이면 여유 공간에 새 파티션을 생성하고(모든 공간을 소비하지 않는 것이 좋으며 아마도 그 이유를 알고 있을 것입니다...) LVM 파티션으로 만들 수 있습니다. 그런 다음 파티션을 LVM PV로 만들고( pvcreate), 새 볼륨 그룹( vgcreate)과 루트, 기본 및 스왑 볼륨( lvcreate)을 생성하고 포맷합니다( mke2fs -t ext4, mkswap). 그런 다음 열려 있는 볼륨의 내용을 복사할 수 있습니다. 마지막으로, 새로운 rootfs를 사용하도록 부트로더를 재구성해야 합니다.

사용 가능한 공간이 너무 크기 때문에 처음에 언급한 블록 복사는 필요하지 않습니다.

관련 정보