No space left on device 解决方法
遇到这个错误,有两种可能,一种是硬盘空间不够,另一种是linux的inode不够。
输入df -i 后,发现"/"目录下的indoe 使用了100%。说明我的第二种情况。
解决方法:
1.找到小文件特别多的目录,一般是临时文件
2.把无用的小文件删掉。
命令行下查看文件数。查看文件夹下的文件个数(当前目录的文件和子文件夹的文件数)
find ./ -type f | wc -l
如果是图形界面,点击查看文件夹属性就行。
补充知识:
Linux/Unix like OS 的文件系统中每个目录树中的节点并不是像 Windows 那样直接包含文件的具体信息,而只包含了文件名和 Inode number 。通过 Inode number 所找到对应于文件名的 Inode 节点中才真正记录了文件的大小/物理地址/所有者/访问权限/时间戳/被硬链接的次数等实际的 metadata。当你在 Linux 中进行 IO 操作的时候,需要的资源除了磁盘空间以外,还要有剩余的 Inode 才行。缺省情况下, Linux 在系统安装过程中按照1个 Inode 对应 2k 磁盘空间来计算每个分区的最大 Inode 数。
当一个磁盘分区(文件子系统)的Inode被用光的时候,是无法再创建文件的。调整字节/inode的比例,来达到增加创建inode数目的目的。磁盘空间一定的情况下,当然比例越小,能创建的Inode就越多当然如果你是只有很少但是很大的数据库文件。就可以调高bytes/inode的比例。
注意:调整Inode相当于重新格式化了分区。原有的文件都会丢失所以确实需要调整的话,先要备份数据;