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
이것은 가능하다. 이 필요
- 다른 Linux 부팅(CD/DVD도 가능)
- PV 외부에 약간의 여유 공간이 있습니다(100M이면 충분합니다).
- 어느 정도의 무감각함…
그런 다음 블록은 암호화된 볼륨에서 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를 사용하도록 부트로더를 재구성해야 합니다.
사용 가능한 공간이 너무 크기 때문에 처음에 언급한 블록 복사는 필요하지 않습니다.