当前位置: 首页>>技术教程>>正文


filesystem – df 显示所有占用的空间,但 du 不加起来

,

问题描述

我在使用 Ubuntu 12.04 LTS 时遇到问题。这是我在过去 3 周内第二次遇到此问题。 \n第一次在 this closed question on StackOverflow 中描述。\nTL;DR 版本是我设法使用 450G ext4 系统上的所有 inode 编译和构建 Android 堆栈不到 20 次。

我以为我正在通过将磁盘重新格式化为 XFS 来解决问题,这样 inode 存储就可以增长。

今天早上,在通宵构建后,我的可用空间不足 1GB。除了构建 Android 所需的东西之外,这台机器上没有任何东西。我在平台源上总共完成了 5 次构建。构建创建了一堆文件,然后我在不久之后用 make clean 删除了它们。我实际上并没有少于 1GB,但工具是以这种方式报告的。我删除了一堆临时文件,大约有 40GB “freed”。几个小时后,只是闲置,我又回到了不到 1GB 的免费空间。

从闪存驱动器运行 Ubuntu 会为分区返回以下内容…

$ df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda5      468521456 468255460    265996 100% /media/f71c77eb-b4cc-

$ df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda5      1691760 624214 1067546   37% /media/f71c77eb-b4cc-

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda5       447G  447G  260M 100% /media/f71c77eb-b4cc-

这是有问题的证据。当我运行 du(有和没有 –apparent-size)或可视磁盘使用分析器时,我显示我实际上只使用了大约 \n35GB 左右。 98.7% 的已用空间在 /home/eric 中,但 du 加起来还不够。差异在 /home/eric/home/eric/android 之间

我已经阅读了此处和 SO 上的相关问题,他们通常建议它是打开进程持有的已删除文件。我重新启动到闪存驱动器来运行这个测试,所以它不应该是打开的文件。 FWIW,/tmp 是空的。

有没有我可以在闪存驱动器上安装的工具来恢复 ‘lost’ 空间?我可以尝试释放系统上的内存并在那里运行它,但我假设最好从闪存驱动器执行此操作。

我应该以不同的方式配置这个系统吗?我宁愿不再擦除并安装,但我需要一个可持续的 Android 构建系统。

FOLLOWUP – 为了完成工作,我上周不得不对安装和 re-installed 12.04 进行核对。当我本周再次进行 Android 构建时,我将密切关注磁盘使用情况,并在我了解更多信息时在此处提供信息。

谢谢

最佳方案

在 Oracle Linux 上,当您有(很多/大)文件被删除但仍在运行的进程中打开时,就会发生这种情况。然后停止进程或重新启动机器会有所帮助。

次佳方案

我最近遇到了这个,在我的例子中,需要运行 fsck

我执行了 touch /forcefsck && reboot,几分钟后,服务器重新联机,突然间我丢失的 6 GB 空间被释放了。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13693.html,未经允许,请勿转载。