显示文件系统对 root 用户可用的可用空间

Mec*_*ail 14 linux disk-space filesystems command-line coreutils

默认情况下,Linux 至少在 ext4 上为 root 用户保留了一部分文件系统(以防止普通用户完全填满驱动器并使系统崩溃,并减少碎片)。但是,df仅显示普通用户可见的可用空间(即使以 root 身份运行)。您如何显示root可以访问的“真实”可用空间?

lor*_*nix 17

通过使用命令tune2fs(在/sbin/tune2fs 中找到),您可以轻松确定保留空间:(以及更多!)

tune2fs -l /dev/sda1
Run Code Online (Sandbox Code Playgroud)

我将提供我的系统信息以供参考,我将删除对这个问题不重要的无关行:

标题...和卷名,我标记了我的所有驱动器,如果需要,可以轻松识别它们。

tune2fs 1.42.4 (12-Jun-2012)
Filesystem volume name:   xenon
Last mounted on:          /
...
Run Code Online (Sandbox Code Playgroud)

真的希望在系统运行时说“干净”。诚实!

Filesystem state:         clean
Run Code Online (Sandbox Code Playgroud)

这是数据存储容量信息开始的地方:

在这里你可以看到我总共有 121,179,648 个块......块大小为 4K(4096),乘以某个大数(462-ish GB)。(块大小在下面注明)

Block count:              121179648
Run Code Online (Sandbox Code Playgroud)

保留块...通过查看上面的数字和下面的数字...您应该能够相对快速地找出我保留了 1%。在这种情况下(4.62-ish GB)

Reserved block count:     1211796
Run Code Online (Sandbox Code Playgroud)

目前有多少可用空间?就在这儿!

Free blocks:              104090586
...
Run Code Online (Sandbox Code Playgroud)

以及所有重要的块大小。用于乘法。

Block size:               4096
...
Run Code Online (Sandbox Code Playgroud)

这些行说 WHO 这些块是为...用户 0,root 保留的,在这种情况下

Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
...
Run Code Online (Sandbox Code Playgroud)

这里有更多可用信息,但这应该使您能够快速确定有多少可用,以及为 root 保留了多少。简单的数学。

希望这可以帮助。请记住...手册页是您的朋友。


Pau*_*aul 6

我不确定是否有内置工具,但假设您已将保留保留为默认 5%,那么这将告诉您:

df / | grep dev | cut -f 3,6 -d\  | awk '{print ($1*.05)+$2}'
Run Code Online (Sandbox Code Playgroud)

df根,grep对于其中包含 dev 的行(删除标题)、cut大小和可用字段,然后使用awk脚本计算添加到可用磁盘大小的 5%。

您可以从中提取实际预订tune2fs -l <device>并将其与上述内容结合在脚本中。

  • 是的,所以下面的命令会告诉我们有多少分区空间是为特权用户保留的:`tune2fs -l /dev/DEVICE | egrep "块计数|保留块计数"`。例如,对于我的“多媒体缓冲区”分区:`块数:2621440`和`保留块数:128449`:可用块的 4.9%(有助于防止碎片的保守设置)。 (3认同)