Linux ram挂载jffs2文件系统

2019-07-13 04:42发布

参考链接:
http://www.linuxdiyf.com/viewarticle.php?id=58126
http://blog.chinaunix.net/uid-26683644-id-3394110.html
如何将一个ram mtd设备格式化为jffs2文件系统并且正常使用?
1.kernel 配置:
(1)jffs2文件系统支持:
File systems —>
-*- Miscellaneous filesystems —>
<*> Journalling Flash File System v2 (JFFS2) support
(0) JFFS2 debugging verbosity (0 = quiet, 2 = noisy)
[*] JFFS2 write-buffering support
[*] Verify JFFS2 write-buffer reads
[*] JFFS2 summary support
[*] JFFS2 XATTR support
[*] JFFS2 POSIX Access Control Lists
[*] JFFS2 Security Labels
[ ] Advanced compression options for JFFS2
(2) ram mtd 支持
Device Drivers —>
<*> Memory Technology Device (MTD) support —>
<*> Caching block device access to MTD devices
Self-contained MTD device drivers —>
<*> Test driver using RAM
(8192) MTDRAM device size in KiB
(128) MTDRAM erase block size in KiB
说明:这个配置让kernel把一块内存区域虚拟成一片flash给你使用。
8192 这里指分配8M的内存大小,系统启动后/dev/会有个8M大小的块设备。
128  指擦除块大小
2.jffs2文件系统制作:
这步操作在UBUNTU主机上执行,目的是为了得到一个jffs2镜像文件
mkfs.jffs2 -s 0x1000 -e 0x20000 -p 0x800000 -d jffs2-file/ -o jffs2.img
说明:-p 0x800000 指生成8M大小的镜像,这个大小要和你kernel配置的一致:
(8192) MTDRAM device size in KiB
-e 0x2000 快擦除大小128K,与(128) MTDRAM erase block size in KiB一致。
3.使用
以下操作在target上执行
(1)将上一步得到的jffs2.img拷贝到target /jffs2.img
(2) dd if=/jffs2.img of=/dev/mtdblock0
(3) mkdir test; mount -t jffs2 /dev/mtdblock0 test
(4)查看是否成功:
root@intel-x86-64:~# mount
/dev/mtdblock0 on /root/test type jffs2 (rw,relatime)
(5) 读写测试:
cd /root/test; cp /sbin/init .