当前位置: 首页 > GNU/Linux系统 > 正文

Linux文件inode用完一例

在实际使用SD卡过程中发现写不进数据了,系统提示类似下面的信息:can't create /mnt/sd/101: No space left on device。查看分区空间,还有很多,但就是写不进数据。上网查了才知道,原来这种情况有可能是inode用完的原因,经过查找,的确是这个原因导致的。
查看SD卡的两个分区使用情况,如下:

#df -h /dev/mmcblk0p1 14.0G 3.9G 9.3G 30% /mnt/sd /dev/mmcblk0p2 15.7G 860.0M 14.1G 6% /mnt/sb

第一个分区还有空间。
再查看inode数:

# df -i /dev/mmcblk0p1 14336 14336 0 100% /mnt/sd /dev/mmcblk0p2 16256 5431 10825 33% /mnt/sb

第1个分区的inode数已用完。
查看该分区文件个数:

# cd /mnt/sd # find . -name "*" | wc -l 14323

SD卡第1个分区inode为14336,实际文件个数为14323,基本一致。
针对这个问题,需要在格式化SD卡(或U盘)分区时,将inode数调大一些(不指定inode数,inode为默认值,具体多少自行查看),或者在写文件时注意不要频繁写大量的小文件。

PS:这个问题是公司实际项目中遇到的,按理说不应该由我查的,但公司搞Linux的人不多,熟悉Linux的人不多,很多人都是用windows的思维在嵌入式Linux中,一旦遇到点与系统有关的问题,都会怀疑是uboot、Linux内核的问题。这里也算是帮其它部门解决他们的bug了。

李迟记于2014年2月26日

本文固定链接: http://www.latelee.org/using-gnu-linux/linux-out-of-inode.html

如无特别说明,迟思堂工作室文章均为原创,转载请注明: Linux文件inode用完一例 | 迟思堂工作室

目前暂无评论

发表评论

*

快捷键:Ctrl+Enter