72 yaffs文件系统挂载慢 sync不起作用

1 引言

        最近在开发过程中遇到了一个问题:Linux在启动时挂载根文件系统时很慢很慢!

        每次开机都是这样,项目中使用的是yaffs文件系统,理论上第一次启动时,会扫描完整的rootfs的flash区域建立索引,第二次启动就不会再扫描一次。但是实际情况是系统启动每次都扫描一遍,着实让人费解。

        经过排查探究,最后发现是自己的一个知识缺漏点,由于操作流程不正确,才导致每次启动都要扫描一遍flash,因此特此记录。

2 现象

        linux版本:4.3

        文件系统:yaffs

        flash类型:nandflash

        系统启动后会将文件系统挂载为只读文件系统,但由于某些需求会更改文件系统的内容,因此会对文件系统remount为可读可写,操作完之后会设置会只读。

        在上述流程中,虽然我们在增删、更新文件系统数据内容后,有调用sync命令,想将文件数据及时回写到磁盘中,但由于我们增删文件后,立马设置文件系统为只读,之后才进行的sync操作,使得sync命令实际并未产生预期相符的结果,导致yaffs文件系统的checkpoint信息并未更新,而文件系统内容实际是有更改的,系统起电后发现现存文件系统信息与实际算出来的不匹配,所以系统重启都要扫描一遍flash,从而导致该问题。

        因此,通过本次经验得知,如果要更新yaffs文件系统的checkpoint信息,那么调用snyc命令时一定要注意此时文件系统是否为可写状态!!!!

        下面是我错误的操作流程。

#我的错误流程
mount -o remount,rw /
cp /tmp/xxx /bin/
mount -o remount,ro /
sync
sync

        正确的操作流程应该如下:

#正确流程
mount -o remount,rw /
cp /tmp/xxx /bin/
sync
sync
mount -o remount,ro /

需要注意:文件系统在可写状态下,执行sync才能更新checkpoint信息!!否则sync不起作用。

over!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值