为什么 df 输出中的大小和已用空间与可用空间相矛盾

mag*_*ode 6 disk-usage

运行以下命令:

$ df -h
Run Code Online (Sandbox Code Playgroud)

给出以下输出:

Filesystem                        Size  Used Avail Use% Mounted on
/dev/md2                           91G   85G  1.2G  99% /home
Run Code Online (Sandbox Code Playgroud)

这意味着在 91 GiB 总数中只使用了 85 GiB,应该留下 6 GiB Avail(91 - 85 = 6)。

为什么Avail只有 1.2 GiB?

这个问题明确地是关于输出中的Used - SizeAvail列之间的矛盾df,而不是df这个相关问题中的du输出之间的差异。

就我而言,文件系统上没有仍在使用的已删除文件。

Tho*_*man 12

默认情况下,ext2、ext3 和 ext4 文件系统保留 5% 的容量供 root 用户使用。这减少了碎片,并降低了 root 用户或任何 root 拥有的守护进程用完磁盘空间来执行重要操作的可能性。有关此保留背后原因的更多信息,请参阅此相关问题的答案。

您可以使用以下tune2fs命令验证预留的大小:

tune2fs -l /dev/md2 | grep "Reserved block count:"
Run Code Online (Sandbox Code Playgroud)

可以使用-m以下tune2fs命令选项更改预留百分比:

tune2fs -m 0 /dev/md2
Run Code Online (Sandbox Code Playgroud)

可以使用-r以下tune2fs命令的选项更改保留的保留块的数量:

tune2fs -r 0 /dev/md2
Run Code Online (Sandbox Code Playgroud)

保留空间在具有与操作系统无关的静态内容的大型文件系统上最没有用。对于此类文件系统,将预留减少为零是合理的。文件系统最好保留默认的 5% 保留,包括那些包含目录/, /root, /var, 并且/tmp经常被守护程序和其他操作系统系统服务用来在运行时创建临时文件或日志的文件系统。