df -h 不显示“预分配空间”字段,因Linux文件系统无此指标;ext4的保留块比例需用dumpe2fs -h查看,XFS则通过xfs_info和xfs_db查allocation group空闲分布。

df -h 输出里没有“预分配空间”这个字段
Linux 文件系统本身不提供“预分配空间利用率”这种指标,df 显示的是已用/可用块(block)和 inode 的实时占用率,不是“预留”或“预分配”的比例。所谓“预分配”,常见于两种场景:ext4 的 reserved blocks(保留块),或 XFS 的 allocation groups 内部结构——但这些都不会直接出现在 df 结果中。
查 ext4 保留块比例要用 dumpe2fs
dumpe2fs 是唯一能读取 ext 系列文件系统元数据的工具,它能告诉你 root 用户保留了多少块(默认 5%),以及当前实际使用情况:
-
dumpe2fs -h /dev/sda1 | grep -i "Reserved block count\|Block count"—— 查总块数和保留块数 - 保留比例 =
Reserved block count÷Block count× 100%,通常为 5%,但可通过tune2fs -m 1 /dev/sda1改为 1% - 注意:该保留空间仅对 root 可用,普通用户看不到,也不计入
df的 “Available” 字段;它防的是磁盘写满后系统无法写日志、无法登录等崩溃场景
XFS 没有全局保留块,但 allocation group 有内部碎片
XFS 不设固定百分比保留块,而是靠每个 allocation group(AG)动态管理空闲空间。要查 AG 级别细节,得用:
-
xfs_info /mount/point—— 查 AG 总数、块大小、是否启用 CRC 等基础信息 -
xfs_db -r -c "freesp -s" /dev/sda2—— 查各 AG 剩余空闲空间分布(需安装xfsprogs) - 输出里会看到类似
agno = 0, free = 1234567,但没有“利用率图”;XFS 的碎片和空闲块分散在多个 AG,df显示的是聚合后结果
别被“详情图”误导,真需要可视化得靠第三方工具
Linux 原生命令不输出图形,“详情图”只能靠外部工具生成:
-
ncdu—— 终端内交互式目录大小树状图,ncdu /var启动后按d可删大文件,但它只统计文件层,不反映文件系统底层块分配 -
baobab(GNOME Disk Usage Analyzer)—— 图形界面,显示挂载点下目录热力图,仍不展示 reserved blocks 或 AG 分布 - 真正想看 block-level 分布?得用
debugfs(ext)或xfs_db(XFS)+ 手动解析,或者导出数据用 Python + matplotlib 画,但这属于调试级操作,不是日常运维需求
真正的瓶颈往往不在“预分配”,而在 df -h 显示的 Use% 接近 100%、或 df -i 显示 inode 耗尽——先盯住这两个数字,再决定要不要深挖底层结构。


















