明明有好多剩余空间,但Linux系统仍然提示没有空间剩余。为何会这样呢?Linux时常会有一些令人失望的模糊的错误消息出现,而这就是其中一种。不过这些错误一般都是由某几种诱因引起的。

通过du和df检测c盘空间

在开始行动前,最好先检测一下是否c盘上是否确实还有空间剩余。其实桌面环境的工具也很不错,但命令行上的工具更直接,要好的多。

Linux Filesystem du

首先让我们瞧瞧du命令。用它来检测问题c盘所在的挂载点目录。本文假定出问题的分区挂载点为根目录。

sudo du -sh /

因为它要遍历c盘中的所有文件linux site:infoq.cn,因而须要耗费一点时间。现今再让我们试试df。

sudo df -h

把根目录和在其中挂载的文件系统加在这条命令的旁边。例如,若你的有一个独立的c盘挂载到/homelinux磁盘相关命令,这么不仅根目录之外,你也须要把它加进来。使用空间的总和应当跟你du命令得到的结果接近。否则的话,就说明可能有已删掉文件的文件被进程占用。

其实,这儿主要专注点在于这种命令的结果是否要大于c盘的大小。假如确实大于c盘大小,这么很显著有好多地方不对劲。

相关:使用Agedu剖析硬碟空间使用状况

可能的诱因

这儿列举了一些形成这些情况的主要缘由。若你发觉du和df的结果之间有差异linux磁盘相关命令,这么可以直接检测第一项缘由。否则从第二项诱因开始检测。

已删掉文件被进程所占用

有时,文件可能早已被删除了,但有进程依旧在使用它。在进程运行期间,Linux不会释放该文件的储存空间。你须要找出这个进程之后重启这个进程。

使用下边命令来定位进程。

sudo lsof / | grep deleted

这应当会列举出问题的进程了,之后重启该进程。

sudo systemctl restart service_name

i节点不够了

文件系统中有一些称为“i节点inode”的元数据,其拿来保存文件的相关信息。好多文件系统中的i节点数目是固定的,因而很可能i节点早已用尽了而文件系统本身还没有用完。你可以使用df来检测。

sudo df -i /

比较一下已用的i节点和总共的i节点数目。假如没有可用的i节点了,这么很不幸,你也难以扩展i节点。删掉一些无用的和过期的文件来释放一些i节点吧。

坏块

最后一个很常见的问题就是坏的文件系统块。除非另有标记,否则操作系统很可能会觉得这种块都是可用的,这会造成文件系统受损或则硬碟坏死。最好是使用带-cc标志的fsck搜索并标记出这种块。记住,你不能使用正在使用的文件系统(LCTT评注:即包含坏块的文件系统)中的fsck命令。你应当会要用到liveCD。

sudo fsck -vcck /dev/sda2

很显著,这儿须要使用你想检测的c盘路径代替命令中的c盘位置。另外,要注意,这或许会花上很长一段时间。

linux关于磁盘的命令_linux常用命令磁盘_linux磁盘相关命令

相关:使用fsck检测并修补你的文件系统[Linux]

希望这种方案能解决你的问题。这些问题在任何情况下都不是这么容易确诊的。并且,在运气好的情况下linux shell,你可以把文件系统清除干净并让你的硬碟再度正常工作。

via:

作者:NickCongleton译者:lujun9972校对:wxy

本文由LCTT原创编译,Linux中国荣誉推出

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复