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日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值