Btrfs 空间不足,但操作系统报告大量可用磁盘空间

Dav*_*vid 6 partitioning btrfs

无论好坏,我都在使用 Btrfs。它是一个没有压缩或 RAID 的普通 btrfs 分区,我也没有任何快照;这是一个简单的 btrfs 分区,操作系统报告有相当多的可用空间,但是在运行各种操作(例如更新)时出现空间不足错误。

诸如df报告大量可用空间的操作系统工具:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            7.8G     0  7.8G   0% /dev
tmpfs           1.6G   26M  1.6G   2% /run
/dev/sda5       354G  313G   41G  89% /
tmpfs           7.9G  172M  7.7G   3% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           7.9G     0  7.9G   0% /sys/fs/cgroup
/dev/sda5       354G  313G   41G  89% /home
tmpfs           1.6G  4.0K  1.6G   1% /run/user/139
tmpfs           1.6G   20K  1.6G   1% /run/user/1000
Run Code Online (Sandbox Code Playgroud)

后来我找到了 btrfs 工具来显示有关 btrfs 卷的信息:

$ btrfs fi show
 Label: none  uuid: 76eb29fb-6909-4cc9-9848-f0b5723802b9
    Total devices 1 FS bytes used 285.88GiB
    devid    1 size 353.90GiB used 349.90GiB path /dev/sda5

 Label: none  uuid: 229c7745-144f-4dd0-98c5-476248b308ad
    Total devices 1 FS bytes used 384.00KiB
    devid    1 size 348.77GiB used 1.02GiB path /dev/sda3
Run Code Online (Sandbox Code Playgroud)

/dev/sda5使用 286GB,大小为 354GB。然后说使用了 350GB。

/dev/sda5 安装为 /

我如何访问它所说的免费的~60GB,但不是?

Dav*_*vid 8

Btrfs 没有释放块以供重用。对于 Btrfs,这是一个手动过程。

btrfs balance start / 是执行此过程的命令。

  Done, had to relocate 352 out of 352 chunks
Run Code Online (Sandbox Code Playgroud)

这将需要很长时间才能完成,但您可以在另一个控制台窗口中检查命令的进度:

$ btrfs balance status /
Balance on '/' is running
239 out of about 352 chunks balanced (240 considered),  32% left
Run Code Online (Sandbox Code Playgroud)

重新平衡操作完成后:

$ btrfs fi show
Label: none  uuid: 76eb29fb-6909-4cc9-9848-f0b5723802b9
    Total devices 1 FS bytes used 287.93GiB
    devid    1 size 353.90GiB used 298.90GiB path /dev/sda5

Label: none  uuid: 229c7745-144f-4dd0-98c5-476248b308ad
    Total devices 1 FS bytes used 384.00KiB
    devid    1 size 348.77GiB used 1.02GiB path /dev/sda3
Run Code Online (Sandbox Code Playgroud)