为什么“df -h”显示使用的同步空间不足?

为什么“df -h”显示使用的同步空间不足?

我尝试了不同的命令来查看分区的大小和已用/剩余空间,似乎它们的结果总是不同。

这是我在命令中使用/留下的空间df -h

Size  Used Avail Use% Mounted on
395G  355G   21G  95% /home

请注意,已使用和可用总计只有 376G,但大小为 395G

答案1

默认情况下,Linux 文件系统保留 5% 的空间供 root(用户)使用和维护。如果设备 100% 已满,您甚至无法创建允许用户登录所需的临时文件...比如也许...root!

Total space:  395.00G  (from your example)
   minus 5%:   19.75G  (reserved space)
============  =======
 User space:  375.25G  (Available to users)

 Used space:  355.00G  (from your example)
Avail space:   21.00G
============  =======
      Total:  376.00G  (equals 'User Space' from above)

由于使用-h(人体尺寸)选项,所有内容都被四舍五入,因此这些值本质上是相等的。

对于保存正在运行的 Linux 系统的文件系统,您需要一些保留空间,当磁盘很多时,5% 曾经是一个很好的值(很多!)比今天小。今天 1% 会更好,但仍然有些过大。

如果您愿意,用作存储的文件系统可以使用 0% 保留空间进行格式化/设置,这没有什么坏处。这是需要的“运行系统”文件系统一些空间。

在格式化过程中,您可以使用以下选项指定保留多少空间(以百分比表示)-m

mkfs.ext4 -m 1 /dev/sdz3

(来自手册页)

    -m reserved-blocks-percentage
           Specify the percentage of the filesystem blocks reserved for the super-user. This avoids fragmentation, and allows root-owned daemons, such as sys‐
           logd(8), to continue to function correctly after non-privileged processes are prevented from writing to the filesystem.  The default percentage is 5%.

您还可以tune2fs在格式化文件系统后调整其保留百分比:( -m选项!)

 tune2fs -m 1 /dev/sdz2

再次强调,请不要在包含操作系统的文件系统上设置为,您可能永远不会遇到任何问题,但如果您的驱动器已满,它会咬住您,因为您甚至无法登录来修复问题-m0(您需要一张实时/救援 CD/U 盘来修复它!)

答案2

376 / 395 =~ 0.95。因此您丢失了大约 5% 的磁盘空间。这听起来像是系统为系统日志等保留的磁盘空间的默认值。

你可以通过运行找出

tunefs -l

这将显示您的保留块百分比是多少。

然后您可以使用重新调整文件系统

tunefs -m

tunefs有关更多详细信息,请参阅手册页。

相关内容