本文介绍在Fedora Workstation Linux 34系统下启用Btrfs透明压缩功能的方法。透明压缩是复杂的,但是从本质上讲它很容易理解:它使文件占用的空间更少,它有点像压缩的tar文件或ZIP文件,透明压缩会将文件系统的位和字节动态优化为更小的可逆格式。这具有许多好处,但是从本质上讲,它使文件更小。Fedora使用的是非常高效的zstd:1算法,多项测试表明,缺点是可以忽略的,更好的磁盘空间使用是最大的好处,还可能会减少写放大(可以增加SSD的使用寿命),并提高读/写性能。
操作方法 注:在Fedora 34或Fedora 34 Beta全新安装中,默认情况下应启用它。不过在从Fedora 33升级之前和之后启用它也很简单。如果您还没有准备好升级,您甚至可以在Fedora 33中启用它。 1、(可选)备份任何重要数据,不过通常该过程本身是完全安全的。 2、要真正开始,您将要编辑fstab。在具有默认Btrfs布局的Fedora 33安装中,/etc/fstab文件可能看起来像这样:
忽略/boot和/boot/efi目录,因为它们未压缩。您将添加参数compress=zstd:1。这告诉计算机,如果新写入的文件可以从中受益,则应透明地压缩它们。在第四列中添加此选项,该列当前仅包含/home和/的subvol选项:
完成后,只需保存并退出(在默认的Nano编辑器上,则为CTRL-X,SHIFT-Y,然后按ENTER)。 3、既然fstab已被编辑,请告诉计算机再次读取它。之后,它将进行所有需要的更改: $ sudo mount -o remount / /home/ 完成此操作后,您将正式为所有新写入的文件启用透明压缩。 相关参考:将文件系统转换为Btrfs,即将当前分区迁移到Btrfs文件系统。
追溯压缩旧文件 您的计算机上可能已经有很多文件。虽然先前的配置将压缩所有新写入的文件,但那些旧文件将无益。我建议采取下一步的步骤,以获取透明压缩的全部好处。 1、(可选)清除所有不需要的数据,这样可以加快速度。但是,这不是必需的。 2、是时候压缩您的数据了。一个简单的命令可以做到这一点,但是它的形式取决于您的系统。Fedora Workstation应使用: $ sudo btrfs filesystem defrag -czstd -rv / /home/ Fedora Silverblue用户应使用: $ sudo btrfs filesystem defrag -czstd -rv / /var/home/ 注意:您可能会收到一些警告,提示类似“Cannot compress permission denied”之类的警告。这是因为用户无法轻松修改某些文件,尤其是在Silverblue系统上。这是文件的一小部分。随着系统升级,它们很可能会及时自行压缩。 压缩可能需要几分钟到一个小时,具体取决于您拥有多少数据。幸运的是,由于所有新写入都已压缩,因此您可以在此过程完成后继续工作。 该命令完成后,您将被正式完全压缩。
使用了多少文件空间,我的文件有多大 由于透明压缩的性质,诸如du之类的实用程序仅会报告准确的,未压缩的文件空间使用情况。这不是他们在磁盘上占用的实际空间。compsize实用程序是查看文件实际在磁盘上占用多少空间的最佳方法。compsize命令的一个示例是: $ sudo compsize -x / /home/ 此示例提供了有关如何透明地当前压缩/和/home/这两个位置的确切信息。如果未安装,则该实用程序在Fedora Linux存储库中可用。
相关主题 |