免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5555 | 回复: 2
打印 上一主题 下一主题

[操作系统] 挂载nand 某个mtd分区,丢失部分文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-17 15:50 |只看该作者 |倒序浏览
本帖最后由 bouy2006fly 于 2010-05-17 15:52 编辑

各位好!有一问题想向大家请教一下。
我现在将nand flash 分成4个分区,
分区1:u-boot,
分区2:内核,
分区3:文件系统的部分数据或者是根文件系统,这个根据内核而定,如果内核配置为initramfs则载mtd2中存放文件系统的部分数据,如果不是则是放整个根文件系统。
分区4:用户数据。

目前我已经实现了initramfs功能,使用也正常,我的initramfs中没有加入库文件,因为库都比较大,我想将库文件和一些比较大的执行文件放在mtd2分区里,这样可以减小内核的容量。目前我的实现方式如下
1、建立一个目录,该目录可以随便命名,假设我命名为test目录
2、将库文件和其他一些相关文件拷贝到test目录下
3、使用mkyaffs2image 2 test test.oob 工具将test文件夹打包为一个文件,打包文件中包含oob校验信息,“test.oob”
4、将“test.oob”烧写到mtd2分区中。
5、启动linux,在linux中使用"mount -t yaffs /dev/mtdblock2 /mnt/mtd2" 将mtd2分区挂载到“/mnt/mtd2”目录下。
6、分区能够正常挂载,但是问题出现了,我放在test目录中的部分文件丢失了,部分还存在。这就没有达到我所要的效果,我希望test目录下的所有文件都是完整的。

原因分析:
1、出现该问题我分析了一下原因,应该是在做第三步的时候打包生成的“test.oob”文件中没有包含分区信息,当使用mount 挂在mtd2分区的时候对该分区进行了一个格式化工作,将部分空间存入了分区信息,这就导致了部分文件丢失掉。

解决方法:
1、现在有一个比较“撮”的方法可以解决掉该问题;方法就是:先进入linux,用分区格式化工具将mtd2分区格式化为yaffs 或者是其他分区,然后将我需要的库文件拷贝进入该分区,然后通过flash读写工具将mtd2分区的所有数据都读出来,保存为一个二进制文件,然后烧写时就使用该二进制文件进行烧写。

我的问题:
1、我认为前面我想到的解决方法不够理想,希望能够寻求更好的解决方法。
2、请问使用哪种打包工具能够在打包二进制文件时导入分区信息。

先提前谢谢大家能够积极参与讨论该问题。

论坛徽章:
0
2 [报告]
发表于 2010-05-19 09:04 |只看该作者
怎么没有人来回答这个问题,自己先顶一下。

论坛徽章:
0
3 [报告]
发表于 2010-05-19 09:32 |只看该作者
当使用mount 挂在mtd2分区的时候对该分区进行了一个格式化工作,将部分空间存入了分区信息,这就导致了部分文件丢失掉
bouy2006fly 发表于 2010-05-17 15:50

mount  do the format job and cause the files missing?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP