我刚刚安装了 Fedora 33 的新实例,并通过compress=zstd:3
挂载选项为我的根卷启用了压缩。我启用了 的/usr
压缩chattr +x /usr
。
我想禁用/var
目录压缩,根据https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs(5)#FILE_ATTRIBUTES我应该能够使用chattr +X /var
,但 F33 的工具不理解这一点选项。在https://btrfs.wiki.kernel.org/index.php/Compression中有一个命令btrfs property set /var compression ""
,但我无法判断这是否有效。我的文件系统上的任何文件都没有设置“压缩”属性,这没有意义。
我假设 btrfs 在使用compress
选项安装时默认自动压缩所有文件,但默认情况下它看起来只压缩显+c
式设置(“压缩”)标志的文件和目录。
根据当前关于压缩的 wiki 页面:
我可以设置每个子卷的压缩吗?
目前没有,这是有计划的。您可以通过在子卷目录上启用压缩来模拟这一点,文件/目录将继承压缩标志。
另外根据维基页面:
对新写入的数据进行压缩:
- 总是 -- 如果文件系统是使用 -o compress-force 挂载的
- never -- 如果为每个文件/目录设置了 NOCOMPRESS 标志
- 如果可能的话——如果设置了 COMPRESS 每个文件标志(又名 chattr +c),但它最终可能会转换为 NOCOMPRESS
- 如果可能的话 -- 如果指定了 -o compress 安装选项
请注意,使用 -o compress 挂载不会设置 +c 文件属性。
因此,如果您不希望压缩目录,您有两个选择:
chattr 属性当前仅启用压缩(使用 +c 标志)。没有禁用压缩的标志。X 标志做了不同的事情。
如果你想禁用压缩,你应该使用btrfs property
可以打开/关闭压缩的命令:
btrfs property set <file> compression none
这应该适用于所有新写入文件/目录的数据。
也来自维基:
请注意,在 v5.14 之前的内核版本中,您可以通过传递空字符串来禁用压缩,而不是明确提及 none 或 no。从内核版本 5.14 开始,空字符串将重置为默认行为。
因此,在您的系统上将压缩设置为“”应该禁用压缩,但在更新的内核上您应该传递 none/no。
另外,根据 wiki,没有内置工具来检查数据的压缩,但您可以使用compsize来检查新写入的数据。
归档时间: |
|
查看次数: |
2117 次 |
最近记录: |