기존 데이터를 백업/복원하지 않고 외부 디스크를 암호화하는 방법은 무엇입니까?

기존 데이터를 백업/복원하지 않고 외부 디스크를 암호화하는 방법은 무엇입니까?

ext4 암호화되지 않은 외부 USB 디스크가 있습니다.

/dev/sda1       3.6T  2.9T  613G  83% /data

데이터 손실 없이 이 디스크를 암호화하고 싶습니다. 이제 더 나은 성능을 위해 암호화를 원하기 때문에 이 디스크를 Raspberry3에서 Raspberry4로 마이그레이션하고 있습니다.

나는 읽었다파일 시스템 스택 수준 암호화그리고장치 수준 암호화 차단, 그러나 LUKS가 가장 안전한 것으로 보이며 데비안 표준입니다.

나는 이 가이드를 읽었습니다:

경고하다!다음 명령은 암호화 중인 파티션의 모든 데이터를 삭제합니다. 모든 정보를 잃게 됩니다! 따라서 다음 명령을 입력하기 전에 NAS나 하드 드라이브와 같은 외부 소스에 데이터를 백업하십시오.

# cryptsetup -y -v luksFormat /dev/xvdc

4TB의 데이터를 다른 디스크에 복사할 수는 없습니다. 그 정도 용량의 디스크가 없기 때문입니다.

기존 데이터를 백업/복원하지 않고 이 디스크를 암호화하려면 어떻게 해야 합니까? 가능합니까?

답변1

이는 가능하지만 모든 내부 변환과 마찬가지로 데이터 손실 위험이 있습니다.

LUKS 헤더를 위한 공간을 확보하려면 외부 헤더를 사용할 계획이 아닌 이상 먼저 파일 시스템( resize2fsext4의 경우)을 축소해야 합니다. LUKS1의 경우 2MiB만큼 줄여야 합니다. LUKS2의 경우 4M, 16M 또는 최대 64M까지 축소할 수 있습니다. 고급 기능(dm-integrity)을 사용하려는 경우 범위를 더 좁혀야 할 수도 있습니다.

파티션을 축소하는 것 외에도 디스크 파티션 레이아웃이 허용하는 경우 파티션을 늘릴 수도 있습니다.

오프라인 cryptsetup-reencrypt유틸리티를 사용하여 기존 데이터 암호화: (모든 배포판에 설치되지는 않으며 별도의 패키지에 있을 수 있으며 그렇지 않으면 소스에서 얻을 수 있음)

# cryptsetup-reencrypt --new --type luks1 --reduce-device-size 2M /dev/sdXn
Enter new passphrase: 
Verify passphrase: 
[A wild progress bar appears.]

온라인 cryptsetup reencryptLUKS2 사용:

# cryptsetup reencrypt --new --reduce-device-size 16M /dev/sdXn

WARNING!
========
This will overwrite data on LUKS2-temp-2c9761be-a765-4349-aa0a-553203e534f1.new irrevocably.

Are you sure? (Type uppercase yes): 

Enter passphrase for LUKS2-temp-2c9761be-a765-4349-aa0a-553203e534f1.new: 
Verify passphrase: 
[A wild progress bar appears.]

따라서 이 방법은 전체 프로세스 중에 전원이나 케이블 오류가 발생하지 않는 한 작동합니다.

cryptsetup-reencrypt매뉴얼 페이지에 따르면 다음 과 같습니다 .

이 도구를 사용하기 전에 항상 안정적인 백업이 있는지 확인하십시오.

관련 정보