# btrfs filesystem defragment -r -v -czstd:15 /
ERROR: unknown compression type zstd:15
# btrfs filesystem defragment -r -v -czstd_15 /
ERROR: unknown compression type zstd_15
# btrfs filesystem defragment -r -v -czstd15 /
ERROR: unknown compression type zstd15
这Btrfs 手册页没有给出如何选择压缩级别的线索:
-c[算法]
在碎片整理时压缩文件内容。可选参数选择压缩算法、zlib(默认)、lzo 或 zstd。目前无法选择不压缩。另请参见示例部分。
如何选择非默认 zstd 压缩级别来重新压缩现有的 btrfs 文件系统?
笔记:btrfs filesystem defragment
在快照可能会导致更大的磁盘空间消耗:
警告:使用 Linux 内核版本 < 3.9 或 ≥ 3.14-rc2 以及 Linux 稳定内核版本 ≥ 3.10.31、≥ 3.12.12 或 ≥ 3.13.4 进行碎片整理将破坏 COW 数据的引用链接(例如使用 cp --reflink 复制的文件、快照或重复数据删除数据)。这可能会导致空间利用率大幅增加取决于断开的参考链接。
答案1
内核 5.1 添加了 ZSTD 级别支持。我今天使用 /etc/fstab 中的挂载选项 compress=zstd:12 使用 rc1 对其进行了测试。默认级别为 3。需要明确的是:更改仅影响在此 mount 命令之后写入的文件。一些基准测试结果:https://lkml.org/lkml/2019/1/28/1930
答案2
还不可能(2017 年 12 月 28 日):
问:我可以设置压缩级别吗?
答:……,ZSTD 级别的支持已计划。
答案3
尝试:
$> sudo mount -o 重新安装,compress=zlib:9,compress=zstd /
在该命令之后'发现'显示'压缩=zstd:9' 安装选项:)