两个ramdisk文件系统报错的问题

最近在优化项目的时候发现了两个文件系统的问题。

 

1 需要让驱动自动挂载节点,不要手动的去mknod,查了一些资料后得出可以使用udev工具,所幸ltib里面有这个工具包,安装上以后可以自动添加节点了,但是发现ftp连接不上了,每次都报错说ftp日志文件创建不了。


这时我发现,使用了udev后,不光有这个问题,整个ramdisk中不可以创建文件或文件夹了,例如使用mkdir 命令后会报错说磁盘空间满,于是我使用df命令查看:
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/ram0                24463     13284      9941  57% /
才使用57%。

 

 

在网上查了半天才逐渐的弄明白,由于使用了udev,使得在/dev文件夹下面产生了大量的以前不会生成的节点,使得ramdisk的nodes数用完了。这里mkdir报的磁盘空间不够,指的是nodes数。
于是查看ltib的制作ramdisk的脚本,发现定义nodes数的地方:/bin/ltibutils.pm中一句:
my $inodes = $fs_count + 400;

这里在计算了整个文件系统所需的nodes数的基础上还预留了400个节点,将此改成:
my $inodes = $fs_count + 1700;
预留1700个后,编译,使用没有出现上面的错误。

 

 

2 在将ramdisk做大,或者是添加了多个映射大块物理地址的驱动后会报错:attempt to access beyond end of device

 

还是在网上查了后,得知这是ramdisk_size的问题。
在使用ltib制作了ramdisk后,会有打印提示:
Your ramdisk exceeds the old default size of 4096k, you may need to
set the command line argument for ramdisk_size in your bootloader
allowing 10% free this gives 27236k .  For instance, for u-boot:


setenv bootargs root=/dev/ram rw ramdisk_size=27236

怪我一直没有注意这里,randisk中文件大小是大约13M,预留空间是10M,在没有压缩之前总共是大约23M,这里ltib提示,超过了默认的ramdisk大小4M的时候就要修改ramdisk的上限值,并预留一定的空间,23M的大小,应该在uboot的环境变量中把表示ramdisk上限值的ramdisk_size值设成大约27M。
修改了此值后,启动系统,没有再报错。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值