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

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

CentOS 6.4(2.6.32-358.6.1.el6.x86_64) 상자를 설치할 때 전체 LVM 물리 볼륨(홈, 루트 및 스왑 포함)을 암호화하는 실수를 저질렀습니다. 파일을 이동하는 kcryptd데 CPU의 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새 볼륨 그룹( )과 논리 볼륨을 생성 하고 포맷합니다( , ). 그런 다음 열린 암호화 볼륨의 내용을 복사할 수 있습니다. 마지막으로 새로운 rootfs를 사용하도록 부트로더를 재구성해야 합니다.vgcreatelvcreatemke2fs -t ext4mkswap

처음에 언급한 블록 복사는 여유 공간이 크기 때문에 필요하지 않습니다.

관련 정보