df显示所有已用空间,但du不会累加


28

我在Ubuntu 12.04 LTS上遇到问题。这是我过去3周内第二次遇到此问题。第一次是在StackOverflow上这个已解决的问题中描述的。我设法在TL; DR版本中使用了450G ext4系统上的所有inode,而编译和构建Android堆栈的次数不到20次。

我以为可以通过将磁盘重新格式化为XFS来解决问题,从而使inode存储可以增长。

在隔夜进行构建后的今天早上,我的可用空间不足1GB。除了构建Android所需的设备外,此机器上没有其他任何东西。我已经在平台源代码上完成了5次构建。构建会创建一堆文件,然后不久我将它们删除make clean。我的确不小于1GB,但是工具以这种方式报告它。我删除了一堆临时文件,并释放了大约40GB。几个小时后,只是闲着,我又回到了不到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)或可视化的磁盘使用分析器时,表明我实际上只使用了大约35GB左右。98.7%的已用空间位于中/home/eric,但du并不等于总和。差异介于/home/eric和之间/home/eric/android

在此处输入图片说明

我已经在这里和SO上阅读了相关问题,他们通常建议将其删除,这些文件由打开的进程保存。我重新启动进入闪存驱动器以运行此测试,因此不应将其打开。FWIW,/ tmp为空。

我可以在闪存驱动器上安装可恢复“丢失”空间的工具吗?我可以尝试释放系统上的内存并在其中运行,但是我认为最好从闪存驱动器上执行此操作。

我应该以其他方式配置此系统吗?我宁愿不进行其他擦除和安装,但我需要一个可持续的Android构建系统。

后续行动 -我上周不得不取消安装并重新安装12.04才能完成工作。本周,当我再次进行Android构建时,我将密切关注磁盘使用情况,并在我了解更多信息的同时在此处提供信息。

谢谢



@jokerdino是的,我按照该线程和其他一些类似线程中的说明进行操作。我重新启动系统以及从闪存驱动器重新启动。重新启动后,系统仍将整个磁盘显示为已占用。谢谢。
埃里克·克隆宁

Linux中的文件数据是引用计数,因此您不需要像Windows中那样频繁地重新启动。也许您在覆盖其背后的数据文件的同时使模拟器保持运行状态?
2013年

@EricCloninger我必须将自己添加到用户列表中,同一问题是怎么发生的。这是我使用12.10 的问题这是 11.04用户的问题
Lucio

另外,将其输出复制并粘贴到ls -lah ~paste.ubuntu.com中,并将其链接到您的问题中。
Lucio

Answers:


19

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


在装有日志文件的服务器上为我工作。谢谢!
miccet 2015年

12
使用lsof +L1,检查进程ID,然后将其杀死。
Jeff Tian

3

我最近遇到了这个问题,在我的情况下,fsck需要运行它。

我这样做touch /forcefsck && reboot了,几分钟后,服务器又重新联机,突然丢失了我丢失的6 GB。


1

在您走很远之前.....将系统降至单用户模式fsck -f /dev/sda5,并对文件系统执行FULL fsck(我的意思是full ),然后查看其显示内容。您可能会发现该空间是磁盘上问题区域的一部分,或者是分配的空间与磁盘上存在的空间不匹配。


闪存驱动器中的sudo fsck -f / dev / sda5没有执行任何操作,因为该驱动器已格式化为XFS。它建议我使用xfs_checkxfs_check / dev / sda5没有返回结果。xfs_repair / dev / sda5进行了修复,但未报告任何异常情况。在这两者之后,我仍然有99%的人饱。Thx
Eric Cloninger

1

我们可以做一个测试,du说您有10GB的可用空间,而df说300 MB,您可以写一个(或几个)文件大小为2 GB的文件吗?如果可以的话,这意味着df完全是错误的(实际上没有“丢失空间”的问题)。如果不是,那就du错了(这将很有趣)。


1

我尚未找到导致此问题的原因,但是它是ubuntu 12.04特有的。

刚设置一个新服务器,我就从Ubuntu 12.04开始并遇到了这个问题。du显示了约111 GiB的使用率,而df约为170 GiB。

使用systemrescuecd 3.3.0进行引导并再次检查显示差异小于1 GiB。

保留分区和文件系统(ext4)不变,我移开了ubuntu目录并安装了Debian 7.0。同样,du和df之差小于1 GiB。

对于ubuntu 10.04,在同一分区和ext4 fs上:

来自df -m /

Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/sda2              2814679    407164   2264538  16% /

du -mx

tail -1 /root/diskuse 
406920  .

足够近了


0

您发布的图像告诉您正在使用空间的位置:/home/eric。似乎您有一个很大的文件占用了所有空间,或者可能有很多较小的文件。打开主目录,确保显示隐藏文件(Nautilus中的Ctrl+ H),然后按文件大小排序。


0

这通常是由目录中的文件引起的,该目录中还装有其他文件系统。一个典型的解决方法是使用应急磁盘启动或在单用户模式下启动,并清空目录,并确认它们没有用作挂载点(cat /proc/mountsdf -h)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.