已有 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=10000 erase_size=128 (单位: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: 131072 bytes, 128.0KiB

Amount oferaseblocks: 78 (10240000 bytes,9.8 MiB)

Minimuminput/output unit size: 1 byte

Sub-pagesize: 1 byte

Characterdevice major/minor: 90:0

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设备:

1 modprobe-v mtd
2 modprobe-v jffs2
3 modprobe-v mtdram total_size=10000 erase_size=128 (单位:K)
4 modprobe-v mtdchar
5 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: 131072 bytes, 128.0KiB

Amount oferaseblocks: 78 (10240000 bytes,9.8 MiB)

Minimuminput/output unit size: 1 byte

Sub-pagesize: 1 byte

Characterdevice major/minor: 90:0

Bad blocksare allowed: false

Device iswritable: true

 

转载于:https://www.cnblogs.com/linux-farmer/p/7379929.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PetaLinux是一个基于嵌入式Linux的开发工具链,用于构建嵌入式系统。它提供了许多可定制的组件和功能,其中包括对JFFS2文件系统的支持。 JFFS2(Journaling Flash File System 2)是一种针对闪存存储设备设计的文件系统。它具有很好的压缩率和高度可靠性,适用于嵌入式系统。在嵌入式系统中,闪存是一种常见的存储设备,它通常具有较小的存储容量和有限的周期寿命。因此,选择合适的文件系统对于确保系统的可靠性和性能至关重要。 使用PetaLinux时选择使用JFFS2文件系统有几个优点。首先,JFFS2具有较好的压缩率,可以节省存储空间。这在嵌入式系统中特别重要,因为闪存的容量通常有限。其次,JFFS2采用了日志技术,可以确保数据的完整性和一致性。它可以通过将修改的数据写入日志中,然后再写入闪存中来提供数据持久性。这有助于防止数据损坏和错误。 另外,PetaLinux提供了对JFFS2文件系统的内建支持和集成工具。这些工具使得在构建嵌入式系统时轻松地添加和配置JFFS2文件系统成为可能。开发人员可以使用PetaLinux提供的命令和选项设置文件系统的参数和属性,以满足特定的需求。 综上所述,使用PetaLinux来构建嵌入式系统并选择JFFS2文件系统能够提供较好的存储空间利用率和数据的可靠性。这使得嵌入式系统在具有有限存储容量和闪存设备的情况下,能够更好地运行和维护。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值