已有 JFFs2文件系统的修改
项目应用中,对于前人留下的JFFS2的文件,有时候我们需要修改,但是苦于没有源文件,实际操作很多时候无所适从。每次支持生产之后再进行人为的升级。这样费时费力,也给生产人员增加了负担。
为了解决这个问题,参考了一些资料,总算解决了这个问题!
基本的原理就是:
linux支持mount JFFS2到本地目录
这是一个完整的文件目录,我们可以修改mount后的文件目录,修改完成之后,重新使用mkfs.jffs2工具打包即可。
Ubuntu下对jffs2的修改:
0. 在线安装工具: apt-getinstall mtd-tools
apt-getinstall mtd-tools
1. 挂载文件系统
mount一个jffs2文件系统过程:
#创建MTD设备:
modprobe -v mtd modprobe -v jffs2 modprobe -v mtdram total_size= erase_size= (单位:K) modprobe -v mtdchar modprobe -v mtdblock
#擦除mtd0:
flash_eraseall /dev/mtd0
#用dd命令装入mtd0分区:
dd if=rootfs.jffs2 of=/dev/mtd0
#新建一个挂载点:
mkdir fsmount
#用mount挂载jffs2文件系统:
mount -t jffs2 /dev/mtdblock0 fsmount
#用umount卸载:
umount fsmount
2. 修改文件系统
成功挂在jffs2之后便可以对立面的内容进行修改,如添加和删除文件、修改文件等。比如我们要增加一个helloworld的文件,操作如下:
cp helloword fsmount sync
3. 重新生成jffs2文件系统
mkfs.jffs2 -r fsmount -o rootfs_new.jffs2 -e 0x20000 --pad=0x800000 -n
这里指定的块大小是:128K
4. 用mtdinfo命令可以查看文件系统的信息
mtdinfo /dev/mtd0 mtd0 Name: mtdram test device Type: ram Eraseblocksize: bytes, .0KiB Amount oferaseblocks: ( bytes,9.8 MiB) Minimuminput/output unit size: byte Sub-pagesize: byte Characterdevice major/minor: : Bad blocksare allowed: false Device iswritable: true
5. 附记
挂载文件之后如果要重新挂载,可以先umount,之后擦除
umount fsmount flash_eraseall /dev/mtd0
Ubuntu下对jffs2的修改:
0. 在线安装工具:
apt-getinstall mtd-tools
1. 挂载文件系统
mount一个jffs2文件系统过程:
#创建MTD设备:
modprobe-v mtd
modprobe-v jffs2
modprobe-v mtdram total_size= erase_size= (单位:K)
modprobe-v mtdchar
modprobe-v mtdblock
#擦除mtd0:
flash_eraseall /dev/mtd0
#用dd命令装入mtd0分区:
dd if=rootfs.jffs2 of=/dev/mtd0
#新建一个挂载点:
mkdir fsmount
#用mount挂载jffs2文件系统:
mount -t jffs2 /dev/mtdblock0fsmount
#用umount卸载:
umount fsmount
#可以删除MTD模块:
modprobe –r xx(xx)
2. 修改文件系统
成功挂在jffs2之后便可以对立面的内容进行修改,如添加和删除文件、修改文件等。比如我们要增加一个helloworld的文件,操作如下:
cp hellowordfsmount sync
3. 重新生成jffs2文件系统
mkfs.jffs2 -r fsmount -o rootfs_new.jffs2 -e 0x20000 --pad=0x800000 -n
4. 用mtdinfo命令可以查看文件系统的信息
mtdinfo /dev/mtd0 mtd0 Name: mtdram test device Type: ram Eraseblocksize: bytes, .0KiB Amount oferaseblocks: ( bytes,9.8 MiB) Minimuminput/output unit size: byte Sub-pagesize: byte Characterdevice major/minor: : Bad blocksare allowed: false Device iswritable: true
最新文章
- Dapper where Id in的解决方案
- [poj1182]食物链(并查集+补集)
- WebStorm 9 配置 Live Edit 功能与浏览器实现同步
- Caused by: org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file
- ASP.NET MVC 中使用 AjaxFileUpload 插件时,上传图片后不能显示(预览)
- oracle nologging用法
- 10 Questions To Make Programming Interviews Less Expensive--reference
- JAX-WS 学习二:基于WEB容器,发布WebService
- Struts2第二天
- HDU 2671 Can't be easier
- C# 汉字转拼音 将中文转换成拼音
- centos 使用 beyond compare 对比工具
- Android 社区App 《窝吧》开源分享
- Fiddler - 工具配置及在ios抓取不了https的解决方法
- 关于mvc中传递匿名对象,view中无法解析
- [python] 溜了,溜了,七牛云图片资源批量下载 &;&; 自建图床服务器
- Android使用Mob ShareSDK 分享不同平台
- ORM框架的前世今生
- layui(八)——轮播图常见用法总结
- 【CentOS】centos7 稳定使用版本,centos镜像的下载
热门文章
- Java程序设计模式系列之适配器模式
- 【请求之密】payload和formData有什么不同?
- C++ 宏定义#define 中##的使用
- ES6的十大特性和认知
- Go学习笔记(二)十分钟上手
- Django学习(四)---Admin配置
- Python爬虫从入门到放弃(十五)之 Scrapy框架中Spiders用法
- 编写一个可配置的网页信息提取组件 (二)—— 优雅的.net core 配置系统
- [补] winpcap编程——EAP协议与EAPSOCKET实现
- 用Node.JS+MongoDB搭建个人博客(安装环境)(一)