我有一个分区格式化为 btrfs我愿意将那些不经常使用但需要不时快速访问的东西存储在那里(目前是一些我的 PS2 游戏的转储),因为我读到 btrfs 可以很好地动态压缩数据。
问题是,即使使用该compress-force=zlib
选项安装此分区,我根本注意到不到任何压缩工作。
目前我的/etc/fstab
文件显示有关驱动器的以下信息:
LABEL=Emu /mnt/Emu btrfs compress-force=zlib,nosuid,nodev,nofail,comment=x-gvfs-show 0 0
驱动器安装正常,数据可以写入和读回。但未进行压缩工作,无论是旧文件还是新文件。
到目前为止我已经通过以下方式进行了测试:
$ sudo dd if=/dev/sda6 of='/mnt/Emu/dummy.txt' bs=1M count=1024
$ sudo btrfs fi sync /mnt/Emu
$ sudo du -h '/mnt/Emu/dummy.txt'
这在所述驱动器中生成了一个 1 GB 的文件,并告诉我该文件的大小确实是 1 GB,因此没有任何内容被压缩。
还验证了在所述虚拟文件上使用后的大小,然后通过对其chattr +c
使用对文件/驱动器进行碎片整理。btrfs fi defragment
有指点吗?
我的系统规格:
- 操作系统:Ubuntu 14.04 x86_64
- 核心:3.13.0-40-通用
- 文件系统:v3.12
答案1
看当启用压缩时,btrfs 会自动压缩现有文件吗?关于使用 btrfs 进行压缩的最佳实践:
- 该命令
btrfs fi defrag
不是btrfs fi sync
- 它必须应用于文件,
btrfs fi defrag /mnt/Emu/dummy.txt
而不是目录 - 你究竟如何确定它没有被压缩?df 没有显示正确的大小。