dd
파일에 액세스하기 위해 탑재 및 잠금 해제를 순환할 수 있는 파일 시스템이 포함된 LUKS 컨테이너인 디스크 이미지가 있습니다 . 컨테이너의 파일 시스템은 약 1/4만 차지합니다. 디스크를 마운트하고 잠금 해제할 수 있도록 하면서 압축을 활용하는 올바른 방법은 무엇입니까?
답변1
LUKS 암호화 데이터는 압축할 수 없습니다.
그러나 관련된 모든 파일 시스템이 이를 지원하는 경우 fstrim을 사용하여 여유 공간을 삭제할 수 있습니다.스파스 파일여기서 여유 공간은 0이고 공간을 차지하지 않습니다.
# du -h foobar.img
1.0G foobar.img
# cryptsetup open --allow-discards foobar.img foobar
Enter passphrase for foobar.img: foobar
# mount /dev/mapper/foobar loop/
# df -h loop/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/foobar 974M 129M 780M 15% /foobar/loop
# fstrim -v loop/
loop/: 845.7 MiB (886763520 bytes) trimmed
# du -h foobar.img
179M foobar.img
또 다른 옵션은 파일 시스템 자체를 축소하고 이에 따라 이미지 파일 크기를 자르는 것입니다(LUKS 헤더 오프셋을 고려해야 합니다. 일반적으로 LUKS 1의 경우 2MiB, LUKS 2의 경우 16MiB).
또 다른 방법은 암호화되지 않은 데이터를 압축하는 것입니다.
답변2
여기서는 압축이 도움이 되지 않습니다. 데이터를 암호화하세요.압축성이 좋지 않음본질적으로 무작위입니다. 열려 있는 텍스트의 동일한 덩어리라도 다른 덩어리로 암호화됩니다(따라서 파일 시스템의 "빈" 부분을 0으로 만드는 것과 같은 작업은 도움이 되지 않습니다). 이것이 디스크 이미지라면 파일 시스템과 LUKS 컨테이너를 축소하여 공간을 절약하고 더 많은 공간이 필요할 경우 확장하는 것이 좋습니다.