btrfs和缺少可用空间

我将ext4分区转换为btrfs并在执行此操作后删除了save子卷。 然后我在fstab文件中启用了文件系统的压缩(lzo),到目前为止一切正确。

然后我使用defragmentation命令强制压缩所有文件,并使用参数-c将新压缩应用于所有文件。

在这样做的同时,我注意到我的ssd完全填满了 – 在我有6gig的自由空间之前。 不,我什么都没有留下。

easteregg@x201s:~$ btrfs fi df / Data: total=50.00GB, used=49.17GB System: total=32.00MB, used=4.00KB Metadata: total=24.50GB, used=9.86GB 

 easteregg@x201s:~$ df -ha Filesystem Size Used Avail Use% Mounted on /dev/sda1 75G 60G 852M 99% / 

所以现在。 我怎样才能重新获得自由空间。 由于lzo压缩,我预计会获得更多空间。 现在!

fs正确安装。

 easteregg@x201s:~$ mount /dev/sda1 on / type btrfs (rw,noatime,ssd,compress=lzo) 

有任何想法如何解决这个问题?

我知道这个问题很老 – 但截至今天,balance命令解决了这个问题:

在转换过程中,很多空间都会被涂上,以便移动东西。 一旦分配,它将不再显示为“免费”或“未分配”。 要解决这个问题,只需要开始平衡

 btrfs balance start "path" 

你也可以告诉balance命令,只能平衡用于确定百分比的块 – 比如0%,这意味着块是空的:

 btrfs balance start "path" -dusage=0 -musage=0 

参数-d表示数据的选项。 参数-m表示元数据的选项。

玩平衡命令,它应该有所帮助。

看看btrfs fi df的输出:

 Data: total=50.00GB, used=49.17GB System: total=32.00MB, used=4.00KB Metadata: total=24.50GB, used=9.86GB 

total部分是分配的空间,而used是btrfs实际使用的空间。 total used之间的差异(大约15 GB)是您缺少的空间。 如您所见,它已经为元数据块分配。

我只有btrfs的爱好经验,但我不认为ext4转换是创建一个布局良好的btrfs文件系统的最佳方式。 幸运的是,您可以重新平衡整个文件系统,使其重新进行所有分配。

与往常一样,使用备份。