我在Ubuntu 12.04 LTS安装程序中选择了btrfs作为我的/文件系统的格式。安装完成后,我在/etc/fstab中的挂载选项中添加了compress=lzo,并重新启动。
现有的文件现在会自动压缩吗?还是我需要明确采取一些措施来实现压缩?
现有的文件现在会自动压缩吗?还是我需要明确采取一些措施来实现压缩?
...考虑使用
-o compress
重新挂载,并且要么就地重写特定文件,要么运行btrfs fi defragment
来重新压缩所有内容。这可能需要一些时间。
autodefrag
挂载选项怎么样?当它自动碎片整理时,是否也会压缩之前未压缩的文件? - Geremia运行以下命令:
# btrfs filesystem defragment ~/stuff
不会对目录的内容进行碎片整理。
这是设计上的。btrfs fi defrag只对传递给它的单个文件系统对象进行碎片整理。这意味着该命令只对目录对象保存的元数据进行碎片整理,而不是目录的内容。如果你想要对目录的内容进行碎片整理,可以尝试类似以下的命令:
# find -xdev -type f -exec btrfs fi defrag '{}' \;
在此之后,我的/占用了656MB - 不算太大,但肯定有压缩效果。
defrag
,而是应该包括defrag -clzo
或者defrag -czlib
。 - jbo5112btrfs fi defrag -r -czlib ~/stuff
- Salamizstd:3
(默认设置)得到了一个9.17 -> 5.89 GiB的结果。太棒了。 - martixyfind / -xdev \( -type f -o -type d \) -exec btrfs filesystem defragment -v -clzo -- {} +
compress,compress-force
Enable compression. Starting with kernel 2.6.38 you can choose the algorithm for compression:
- compress=zlib - Better compression ratio. It's the default and safe for olders kernels.
- compress=lzo - Faster compression.
- compress=no - Disables compression (starting with kernel 3.6).
compress-force= - Enable compression even for files that don't compress well, like videos and dd images of disks. The options compress-force=zlib and compress-force=lzo works for kernels >2.6.38.
Note that old (before 2012) btrfs-progs versions will probably fail some operations (e.g. fsck) on filesystems with LZO compression.
compress
挂载选项的情况下,对每个文件启用压缩;只需对文件应用chattr +c
。当应用于目录时,它将导致新文件在写入时自动进行压缩。chattr
支持设置文件属性c,标记inode以压缩新写入的数据。chattr
方法是针对单个文件,而btrfs filesystem defragment
是针对整个文件夹的文件? - endolith
sudo mount -o remount /
命令,新的fstab选项就会生效。 - sep332