为什么 Linux 磁盘已满,但文件总数却少得多?

为什么 Linux 磁盘已满,但文件总数却少得多?

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 进程一定在后台继续运行,占用了磁盘资源。我不想给出这个建议,但在完成所有磁盘清理后,您可能只需要重启机器以终止任何占用数据的后台进程,从而阻止磁盘真正被释放。

相关内容