使用 btrfs 时,为什么 df 中的“Size”、“Used”和“Avail”值不匹配?

使用 btrfs 时,为什么 df 中的“Size”、“Used”和“Avail”值不匹配?

我有一个 btrfs 分区。当我运行时df -h,它显示:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       113G  101G  8.3G  93% /home

来自 这是为什么?是因为为 root 保留了 ext2/3/4 的空间吗?或者是别的什么?如果是前者,我该如何更改它并回收那些 4GB ?

按照维基百科,我知道元数据被存储两次,这会增加“已用”数据的大小:

user@machine:~$ df -h /
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             894G  311G  583G  35% /
                            ^^^^
user@machine:~$ btrfs fi df /
Metadata: total=18.00GB, >>used=6.10GB<<  *2=  12.20GB
Data: total=358.00GB, >>used=298.37GB<<   *1= 298.37GB
System: total=12.00MB, >>used=40.00KB<<   *1=   0.00GB
                                           == 310.57GB 
                                           ~~ 311   GB

但这仍然不能解释为什么Used + Avail < Size。

答案1

除非您在格式化时另行指定,否则默认情况下会存储元数据块的重复副本以提高可靠性。您可能有 2GB 的元数据,使用 4GB 存储两次。您可以使用 来查看更多详细信息btrfs filesystem df

特别是,1.75GB 分配给元数据,因此消耗了两倍的空间,即 3.5GB。目前,这 1.75 GB 中只有 385 MB 用于元数据,但完整的 1.75 GB 已保留用于该用途,因此不计入文件数据的可用空间

相关内容