no space left on device磁盘空间不足

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了no space left on device磁盘空间不足相关的知识,希望对你有一定的参考价值。

   磁盘在使用之前需要做RAID冗余阵列、分区、格式化、挂载;
   格式化的目的:1、创建文件系统;2、初始化inode和block(即inode和block的数量是一定的);每一个非空文件都要占用一个inode和至少一个block,那么无论是inode满了还是block满了,磁盘就存放不了东西了,就会提示no space left on device;
         那么如何解决这个问题?
         1、df -h 查看磁盘(block)使用情况,如果满了,那么删除不需要的大文件;
         2、df -i  查看inode使用情况,如果inode满了,查找目录本身大于1M空间的;(思考为什么要找目录本身大于1M的?提示:目录的本身也就是目录的实际内容,即目录的block中放的是什么?----文件名,文件名越多目录本身的block就越大,就代表目录里面小文件越多,那么用什么查找目录本身大于1M的?find)
         具体排查过程:首先我创建两个空目录;
         1、block满了的情况:这里我实际创建一个大文件进行演示;
         ![](http://i2.51cto.com/images/blog/201812/09/d6ff0be25346510e46f80bdff80c0de0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
         ![](http://i2.51cto.com/images/blog/201812/09/bbf9d5ea10d43be017610aaae62cfae3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
         假设这个时候,磁盘bloock满了,具体查找的过程如下,先过滤出根下占用空间最大的目录,然后过滤出改目录下最大的,一级一级过滤直到找到大文件为止;![](http://i2.51cto.com/images/blog/201812/09/862e1e4587bbf57d377d848800b65962.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

    找到大文件之后确认是否要删除;
    2、inode满了查找:上面已经说了,要查找目录本身(不包含下面文件大小)大小大于1M的,用find的查找,-size 查找的就是目录本身的实际大小(不包含下面文件);找到之后,目录没用可以删除目录;目录有用可以配合ls |xargs rm -f  ,如果还是删除不掉,再缩小范围,find  -name |xargs rm -f;

以上是关于no space left on device磁盘空间不足的主要内容,如果未能解决你的问题,请参考以下文章

No space left on device

关于“no space left on device”(磁盘空间不足)问题

No space left on device

no space left on device

提示NO SPACE LEFT ON DEVICE但有磁盘空间

No space left on device 解决Linux系统磁盘空间满的办法