![为什么 Linux 磁盘已满,但文件总数却少得多?](https://linux22.com/image/1216044/%E4%B8%BA%E4%BB%80%E4%B9%88%20Linux%20%E7%A3%81%E7%9B%98%E5%B7%B2%E6%BB%A1%EF%BC%8C%E4%BD%86%E6%96%87%E4%BB%B6%E6%80%BB%E6%95%B0%E5%8D%B4%E5%B0%91%E5%BE%97%E5%A4%9A%EF%BC%9F.png)
df
报告 16G 分区占用 100%。 du
根目录报告文件占用约 1G。我所有的磁盘空间都去哪儿了?
答案1
文件可以被挂载点隐藏。
(当我将辅助卷离线进行维护时,必须运行一个计划程序(备份),并且高兴地重新创建它的目录结构而不是失败。)
答案2
除了Doug 讨论的浪费空间问题,某些文件系统的 inode(唯一文件 ID)总数有限,一旦创建了这些文件,就无法创建新文件。使用df -i
来查看您的 inode 情况。
此外,文件系统(和其他文件系统?)可以ext[23]
将一小部分磁盘空间保留给超级用户。通常,这个比例只有百分之几(在较旧的系统中,通常为 5%),但可以设置得更高。我相信您想tune2fs
在这里(Mac OS 和其他 unix 可能也这样称呼tunefs
)使用该-m
选项。
答案3
您可能正在运行一些程序,并且这些程序打开了旧的未链接文件。这些文件仍存储在磁盘上,直到这些程序关闭,但不会从文件系统树链接。
请注意,这与 Windows 的行为不同,Windows 的行为不会让您删除这样的文件。
答案4
我也遇到过同样的问题。我遇到一个问题,即在执行备份驱动器同步后,我的主启动盘已满。
>rsync -avxHAXW /media/backup1 /media/backup2
同步后,我的主磁盘已满......这让我很困惑。原来我无意中将文件复制到了启动盘,而不是备份盘 2。我更正了错误,删除了主磁盘上的大文件并重新运行 rsync。即使在卸载并重新安装备份磁盘后,我的启动盘仍然空间不足。我甚至尝试清理启动盘上的大文件......
>find . -type f -print0 | xargs -0 du -s | sort -n | tail -25 | cut -f2 | xargs -I{} du -sh {}
删除了所有不再需要的大文件。我还确保清空了垃圾箱。
>empty-trash
完成所有这些工作后……磁盘仍然满了。我决定重启机器。重启后,我的启动磁盘分区从 100% 满了变为 10% 满了!看来 rsync 进程一定在后台继续运行,占用了磁盘资源。我不想给出这个建议,但在完成所有磁盘清理后,您可能只需要重启机器以终止任何占用数据的后台进程,从而阻止磁盘真正被释放。