25.93GB/62.43GB 파티션에 Gentoo Linux를 설치했습니다 /dev/sda4
. 디스크의 다른 파티션에는 150MB /boot
의 /dev/sda1
사용되지 않은 공간이 있고 다른 두 파티션에는 56,66GB의 사용되지 않은 공간이 있습니다.
dm-crypt
사용하지 않는 공간을 암호화하고 ext4로 포맷한 다음 설치를 해당 공간으로 마이그레이션하여 이전 파티션을 제거할 계획 입니다. 내 질문은 다음과 같습니다
이것이 가능한가? 아니면 암호화된 볼륨에서 설치를 실행하려면 많은 조정이 필요합니까
/dev/sda2
?이것이 효율적인 접근 방식입니까? 내가 25.9GB Gentoo를 가지고 있다는 점을 고려하면, 전체 디스크를 암호화하고 Gentoo(및 모든 패키지)를 다시 설치하면 번거로움이 덜할까요?
여기를 사용해야 할까요
encfs
, 아니면ecryptfs
교체 해야 할까요dm-crypt
? 동등한 보안을 제공합니까?파티션을 암호화하려면 어떤 알고리즘을 사용해야 합니까? 내 프로세서에는 AES-NI가 없습니다.
암호화된 파티션을 다른 파티션과 동기화하려면 무엇을 사용해야 합니까? 비슷한 것이 있나요
dcfldd
?
마이그레이션된 파티션에서 편집 내용 쓰기:
사용하지 않는 파티션을 삭제하고 포맷되지 않은 새 파티션을 만든 후 다음을
/dev/sda2
실행합니다.cryptsetup luksFormat /dev/sda2 cryptsetup luksOpen /dev/sda2 encrypt pv /dev/zero > /dev/mapper/encrypt
pv
이는 0 쓰기 진행 상황을 모니터링하는 데 사용되며 그 후 암호화된 파티션을 ext4로 포맷합니다mkfs.ext4 /dev/mapper/encrypt
.파티션을 동기화하기 위해
rsync
라이브 USB에서 PC를 부팅한 후 YoMismo의 제안을 사용했습니다. 하지만 들어갈 수는 없습니다chroot
. 이전 파티션을 재부팅하고chroot
거기서부터 시작해야 합니다. 이 프로세스에서는 다음을 실행합니다.mkdir /tmp/old_partition /tmp/new_encrypt mount /dev/sda4 /tmp/old_partition mount /dev/mapper/encrypt /tmp/new_encrypt cd /tmp/new_encrypt rsync -av /tmp/old_partition/* .
이전 파티션을 재부팅한 후 가상 커널 파일 시스템을
/dev/sda4
열고 마운트합니다./dev/sda2
나는 하나를 만들었
/etc/crypttab
습니다root UUID=<uuid of /dev/sda2> none luks
/etc/fstab
내 루트 파티션UUID=<uuid of mapper>
이 .- 변경한 사항
/boot/grub/grub.conf
:root=<root>
줄 끝 부분을 제거kernel
하고 암호화된 장치를 설정했습니다crypt_root=UUID=<uuid> root=/dev/mapper/root
. - 나는
genkernel --install --luks initramfs
luks의 지원을 받아 새로운 initramfs를 만들기 위해 달려갔습니다.
이제 그것을 시작하고 실행할 수 있습니다. 남은 유일한 일은 이전 파티션에 불을 붙이는 것입니다.
답변1
1.- 네, 가능합니다. 하지만 약간의 조정이 필요합니다.
2.- 전체 디스크를 암호화할 수 없습니다. 시스템을 부팅하려면 최소한 부팅 파티션을 암호화 해제해야 합니다(누군가가 암호 해독 암호 -initrd-를 요청해야 하며 이를 암호화 해제해야 합니다).
3.- encfs
몇 가지 결함이 있습니다. 읽을 수 있습니다.여기. 나는 작업을 수행하기 위해 dm-crypt를 사용할 것입니다.
4.- 설마, 어쩌면 물고기 자리일까요?
5.- 이 작업을 수행하려면 Live CD/USB를 사용하겠습니다. 남겨둔 공간이 다른 파티션의 데이터를 수용하기에 충분한지 모르겠습니다. 그렇다면(파티션이 가득 차지 않은 경우) 다음을 수행합니다.
- 먼저 원하는 파티션 구성표의 종류를 결정해야 합니다. /, /boot 및 스왑만 필요하다고 가정합니다. 따라서 /boot를 망칠 필요가 없으며, 사용되지 않은 파티션에 남아 있는 공간이 암호화된 파티션(이 경우 /)에 넣으려는 데이터를 보관하기에 충분하다고 가정하겠습니다.
- life CD를 사용하여 시스템을 부팅합니다.
- 대상 파티션이 /dev/sdc1이라고 가정하면
cryptsetup luksFormat /dev/sdc1
암호화 비밀번호를 입력하라는 메시지가 표시됩니다. 그런 다음 암호화된 파티션을 연 후cryptsetup luksOpen /dev/sdc1 Enc
여기에 0을 모두 쓰고dd if=/dev/zero of=/dev/mapper/Enc
파일 시스템을 만듭니다.mkfs.ext4 /dev/mapper/Enc
- 이제 파티션을 마운트하고, 파일을 복사하고, 루트 디렉터리를 새 파티션으로 변경하세요.
mkdir /tmp/O /tmp/D
mount /dev/sda4 /tmp/O
mount /dev/mapper/Enc /tmp/D
cd /tmp/D;rsync -av /tmp/O/* .
mount --bind /dev dev
mount --bind /proc proc
mount --bind /proc/sys sys
mount --bind /sys sys
chroot /tmp/D
mount /dev/sda1 /boot
- blkid
파티션 UUID를 식별하고 이 정보를 사용하여 grub 구성 파일 및 fstab을 수정하는 데 사용됩니다(루트 파티션 장치는 /dev/mapper/root_crypt여야 함). 새 암호화된 파티션이 참조되도록 /etc/crypttab을 수정합니다. initrd에서 새로운 변경 사항을 업데이트하려면 grub이 있어야 하는 위치 에 root_crypt UUID=your/encrypted/dev/uuid none luks
.grub-update
grub-install
update-initramfs
제가 아무것도 놓치지 않았다면 지금 준비가 되어 있어야 합니다. 스왑 파티션이 걱정되지 않는 한, 걱정되고 최대 절전 모드에서 다시 시작하고 싶다면 이전 단계에 따라 스왑 파티션을 암호화해야 합니다. mkswap
대신에 mkfs.ext4
. 또한 /etc/crypttab에 스왑 파티션을 추가해야 합니다. /dev/mapper/name_swap_you_created_in_etc_crypttab이 스왑 파티션용 장치가 되도록 fstab을 수정하고 update-initramfs
.