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

sup*_*sup 9 btrfs df

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

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       113G  101G  8.3G  93% /home
Run Code Online (Sandbox Code Playgroud)

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

根据btrfs wiki,我知道元数据存储了两次,这会增加“已使用”数据的大小:

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
Run Code Online (Sandbox Code Playgroud)

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

psu*_*usi 10

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

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

  • @sup,为元数据分配了 1.75GB,因此它消耗了两倍或 3.5GB 的空间。目前,这 1.75 GB 中只有 385 MB 用于元数据,但完整的 1.75 GB 保留用于该用途,因此不计入文件数据的可用空间。 (4认同)