linux命令报错No space left on device
2025年2月18日大约 2 分钟
linux命令报错No space left on device
原因一:磁盘空间被占满
这是最常见的原因,也是最容易检查和解决的。当磁盘空间被占满时,系统就无法分配新的空间给新文件,所以会报错“No space left on device”。要检查这个原因,可以使用df -h命令来查看分区情况
df -h
原因二:inode区域被占满
inode是Linux文件系统中用来存储文件元信息(如所有者、权限、大小、时间、位置等)的数据结构。每个文件都有一个对应的inode,而每个分区都有一个固定的inode数量。当您创建了过多的小文件时,可能会消耗完所有的inode,即使磁盘空间还有剩余。这种情况下,系统也无法创建新的inode来存储新文件的元信息,所以也会报错“No space left on device”。要检查这个原因,可以使用df -i命令来查看inode情况
df -i
原因三:被进程占用中的文件未真正删除
有时候,可能会删除一些文件,但是这些文件还被某些进程占用着。这种情况下,系统并不会立即从磁盘中清除这些文件,而是先将它们标记为deleted。只有当进程结束后,才会真正删除这些文件。如果这些文件占用了大量的空间,那么就可能导致磁盘空间不足。要检查这个原因,可以使用lsof | grep deleted命令来查看被进程占用中的已删除文件
lsof | grep deleted
要解决这个问题,需要结束掉占用这些文件的进程,或者重启系统来释放这些文件
以上原因都不好使,就直接重启系统
reboot