磁盘空间充足却无法创建文件,大概率是 inode 耗尽;用 df -i 查 iuse% 定位,结合 df -h 对比分析,再用 find + wc 找高占用目录,最后清理小文件或调整文件系统配置。

遇到“磁盘空间充足却无法创建文件”,大概率不是空间不够,而是 inode 耗尽了。df -i 是定位这个问题最直接、最可靠的命令。
用 df -i 快速确认是不是 inode 问题
执行 df -i,重点看输出中的 IUse% 列:
- 如果某挂载点(比如
/或/var)的 IUse% 达到 95% 甚至 100%,而对应的空间使用率(Use%)还很低(如 30%),基本就是 inode 耗尽 - 对比
df -h和df -i的结果:前者看“存内容的地方”,后者看“记档案的地方”,两者必须一起看 - 只查
df -h容易误判,尤其在数据库、日志服务、缓存目录等高频生成小文件的场景下
定位高 inode 占用目录
确认 inode 紧张后,要找出“谁占了最多 inode”,常用组合是 find + wc:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- 统计根下各一级目录的子项数量:
find / -xdev -type d | cut -d/ -f2 | sort | uniq -c | sort -nr - 快速检查常见高危路径:
find /var/log -type f | wc -l、find /tmp -type f | wc -l、find /data/cache -type f | wc -l - 查看某个目录里每个文件的 inode 号:
ls -i;加-a可看到隐藏文件,避免漏掉 .log 或 .tmp 类小文件
清理与预防并行处理
临时缓解靠清理,长期稳定靠配置和监控:
- 清理无用小文件:日志轮转未启用的目录、过期的 session 文件、重复下载的临时包、空目录残留
- 对新分区预设更多 inode:格式化 ext4 时用
mkfs.ext4 -i 4096(每 4KB 分配一个 inode,比默认 16KB 提升 4 倍)或-T small(专为大量小文件优化) - 加入基础监控:用脚本定期跑
df -i | awk '$5 ~ /%/ {sub(/%/,"",$5); if($5 > 85) print $1 " inode high"}',配合 Zabbix 或 Prometheus 告警
不同文件系统的扩展能力差异
ext4 的 inode 总数在格式化时就固定,无法后期增加;XFS 则灵活得多:
- ext4:只能重做文件系统(备份 → 格式化 → 恢复),或迁移部分数据到新分区释放 inode
- XFS:可用
xfs_growfs -i maxpct=30 /mountpoint动态扩大 inode 区占比(需预留空间),无需停机 - 新建 XFS 文件系统时,用
mkfs.xfs -i maxpct=30明确指定 inode 区比例,默认是 25%










