根填满虽然它应该有一些空间

这让我困惑了一段时间。 我在Ubuntu 11.04上。 我的根分区正在填满,我无法弄清楚是什么导致了它。 更奇怪的是,当我运行df -h ,这是输出:

 Filesystem Size Used Avail Use% Mounted on /dev/sda2 9.2G 8.8G 0 100% / 

如你所见,应该有大约400 MB免费,但Avail显示0.这可能导致什么? 我甚至卸载了一些程序来释放空间,它又填满了。 关于如何找出哪些文件填满空间的建议也是受欢迎的。

第一个镜头:错误日志中的高流量。 我想如果你要下载video,你会知道的。 🙂

  sudo du -sh /var/log 
  • -s是摘要
  • -h是人类可读(k,M,G,T)后缀

对我来说它是20M,并且在日志目录旁边有一个安装缓存。 使用

  apt-get clean 

如果这是你的问题。

当然,如果它位于根分区中,您应该检查/ home。

如果你必须迭代搜索大文件,我可以建议一系列命令,这些命令可以重复,并且在第一个初始步骤后非常快:

  • 你从顶层的可疑目录开始
  • 然后搜索所有子目录和文件的大小,并按数字排序:
 sudo du -s /var/* | sort -n 0 /var/crash 4 /var/www 44 /var/games 124 /var/run 2306 /var/tmp 18538 /var/log 251876 /var/cache 1053231 /var/lib 
  • 我剥去了这个例子,保持简短。 所以我们看到,bigest子目录是/ var / lib,并重复/ var / lib的步骤。 现在搜索速度更快,因为计算结果以某种方式缓存:
 sudo du -s /var/lib/* | sort -n 78116 /var/lib/apt-xapian-index 104580 /var/lib/dpkg 680503 /var/lib/postgresql 

等等。 按照最大的目录找到更大的文件。 你不能在这里使用-sh,因为数字排序不能用于千字节的k / M / G / T等等。

格式化时,ext2 / 3/4文件系统保留一定百分比的磁盘空间供root用户独占使用。 默认情况下,它是5%。 这样做的目的是即使非特权用户填满了他们可用的所有磁盘空间,系统也可以继续工作并且能够启动。

通常,填充任何文件系统超过其容量的95%并不是一个好主意,因为这会导致过多的碎片,导致性能下降 – 即使在释放磁盘空间之后也是如此。

来自man mke2fs

  -m reserved-blocks-percentage Specify the percentage of the filesystem blocks reserved for the super-user. This avoids fragmenta‐ tion, and allows root-owned daemons, such as syslogd(8), to continue to function correctly after non-privileged processes are prevented from writing to the filesystem. The default percentage is 5%. 

如果您绝对绝望,可以使用tune2fs更改此值。 有关详细信息,请参阅man tune2fs