Dia*_*gon 2 compression mount luks
我有一个dd
磁盘映像,它是一个包含文件系统的 LUKS 容器,我可以循环挂载和解锁以访问文件。容器中的文件系统仅占大约 1/4。在允许我能够安装和解锁磁盘的同时,利用压缩的正确方法是什么?
您无法压缩 LUKS 加密数据。
但是,如果所有涉及的文件系统都支持它,则可以使用 fstrim 丢弃可用空间,从而产生可用空间为零且不占用空间的稀疏文件。
# 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
Run Code Online (Sandbox Code Playgroud)
另一种选择可能是缩小文件系统本身并相应地截断映像文件的大小(请记住考虑 LUKS 标头偏移量,通常 LUKS 1 为 2 MiB,LUKS 2 为 16 MiB)。
另一种方法是压缩未加密的数据。