如何处理df命令显示目录还有空间但创建文件或目录提示空间不足的问题

发布时间:  2015-06-01 浏览次数:  101 下载次数:  0
问题描述

用户发现用df命令查看crash目录还有大量剩余空间,但在该目录中创建文件或目录时却报错无剩余空间,创建失败

告警信息


处理过程

Linux系统中,一个文件或目录创建时,除了文件数据占用磁盘空间外,还需要占用一个inode节点(索引节点)来存放文件或目录的索引信息。而在硬盘格式化的时候,操作系统会自动将硬盘分成两个区域,一个是数据区,存放文件数据;另一个是inode区,存放inode信息。

 

创建文件或目录时报错“No space left on device”的常见原因有两种:

1、磁盘数据区满,检查方法:df -h 目录名;

2、磁盘inode区满,检查方法:df -i 目录名。

 

此问题已经知道磁盘数据区剩余空间足够,查看inode区使用情况。


可以看到,/crash目录所在分区inodes数为6432个,已经全部被使用。
根因

解决方案

1、清理该目录中无用的文件和目录;

2、对此目录所在分区重新格式化,创建更多的inode。但要注意,重新格式化时该分区中的所有文件会全部丢失,请先做好备份。具体使用方法请参考分区格式化命令的说明。

举例:

以每4K大小的数据空间对应一个inode节点的方案重新格式化ext3格式的分区/dev/sda12

mkfs.ext3 /dev/sda12 -i 4096

建议与总结

创建文件或目录时报错“No space left on device”的常见原因有两种:

1、磁盘数据区满,检查方法:df -h 目录名;

2、磁盘inode区满,检查方法:df -i 目录名。

END