
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
새 볼륨 그룹( )과 논리 볼륨을 생성 하고 포맷합니다( , ). 그런 다음 열린 암호화 볼륨의 내용을 복사할 수 있습니다. 마지막으로 새로운 rootfs를 사용하도록 부트로더를 재구성해야 합니다.vgcreate
lvcreate
mke2fs -t ext4
mkswap
처음에 언급한 블록 복사는 여유 공간이 크기 때문에 필요하지 않습니다.