当前位置:  技术问答>linux和unix

jffs想将部分分区设置只读的问题,有点复杂。

    来源: 互联网  发布时间:2016-10-05

    本文导语:  我的想要目标是将移植主要文件系统设置成只读,减少nand flash的读写(nand flash多写很容易坏) 我的想法是 1将移植的主要文件设置成只读 2将放置主要编写程序设置成可读写(方便程序更新) 3日志文件放到tmpfs 硬件:at91s...

我的想要目标是将移植主要文件系统设置成只读,减少nand flash的读写(nand flash多写很容易坏)

我的想法是
1将移植的主要文件设置成只读
2将放置主要编写程序设置成可读写(方便程序更新)
3日志文件放到tmpfs

硬件:at91sam9261 (arm9) 文件系统:jffs格式
内核里设置:
1 u-boot 2M                        只读
2 zImage 2M                        只读
3 rootfs 28M    /    主要文件系统  只读
4 Qt     32M    /Qt  Qt的库        只读
5 Mnt    32M    /mnt 可读写区域    读写

因为内核将rootfs设置成了只读
运行的时候出现很多,
Erase at 0x01fa0000 failed immediately: -EROFS. Is the sector locked?

jffs2_flush_wbuf(): Write failed with -30
Argh. No free space left for GC. nr_erasing_blocks is 0. nr_free_blocks is 0. (erasableempty: yes, erasingempty: yes, erasependingempty: yes)
Failed to allocate space for wbuf recovery. Data loss ensues.

我想:把linux可能读写的区域挂载放到读写区域去,可能就没问题了。

因为不知道可能要写那些目录,我就先全部复制一份放到了/mnt下 通过mount挂载
我的/etc/init.d/rcS中,通过以下命令,进行挂载
/bin/mount -t jffs2 /dev/mtdblock3 /qt
/bin/mount -t jffs2 /dev/mtdblock4 /mnt/
/bin/mount tmpfs /tmp -t tmpfs -o size=16m/
/bin/mount /mnt/bin /bin
/bin/mount /mnt/boot /boot
/bin/mount /mnt/dev /dev
/bin/mount /mnt/etc /etc
/bin/mount /mnt/home /home
/bin/mount /mnt/lib /lib
/bin/mount /mnt/main /main
/bin/mount /mnt/root /root
/bin/mount /mnt/sbin /sbin
/bin/mount /mnt/sys /sys
/bin/mount /mnt/usr /usr
/bin/mount /mnt/var /var

试了一下还是出现上面的错误信息。文件系统 "/" 下除了个linuxrc 文件,所有的文件夹 都挂载到了可读写分区了,
为什么linux还会出现不能写的错误?他写在了什么目录?


怎么实现我这个要求呢呢?
将移植主要文件系统设置成只读,减少nand flash的读写(nand flash多写很容易坏)
1将移植的主要文件设置成只读
2将放置主要编写程序设置成可读写(方便程序更新)
3linux日志文件等平时经常写的放到tmpfs











|
1. kernel里分区时,对应的MTD分区不做成擦除块的整数倍,这个保证任何文件系统的MTD分区也只能读。
2. 用只读的文件系统;
3。启动配置文件里,mount时设置只读属性。

|

其实 linux 本身会操作的目录只是 /var 和 /tmp /etc
如果还有其他目录被操作,你就要考虑到底是那个程序 操作了根目录下的文件。

/bin/mount /mnt/var /var   这个写法是不对的。

1. 根文件系统做成只读的, 这没有任何问题。
2. 你要弄清楚那些文件,或者文件夹会被读写,你可以把它连接出来:
比如:
ln -s /mnt/etc/  /etc  
这个动作要放在制作文件系统之前。


|
这里是有点问题,呵呵。 所以你可以先在   /etc 下放一下基本的文件。
然后等启动以后再 mount /etc 到某个具体分区去。

|
配置fstab可以不,能不能把准备要改的放到可读写文件系统,其他的就放到只读的上面。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jffs2的提示信息JFFS2 notice CRC,还有Empty flash at,如何解决?
  • 求助!文件系统Empty flash at 0x012dbf74 ,JFFS2 notice: (1) jffs2_build_xattr_subsystem:
  • jffs2映像文件问题
  • linux下挂在jffs2的问题
  • jffs2,MTD讨论
  • 关机前卸载jffs2文件系统
  • JFFS2 移植到ST平台问题
  • 有没有研究过linux文件系统的,尤其是jffs系列
  • 关于jffs2文件系统~~~求助
  • cramfs下面挂jffs2方案可行吗?
  • 请问如何mount jffs2 ?
  • Linux中,关于如何在flash上实现JFFS得问题
  • 关于mkfs.jffs2的压缩级别问题
  • 关于s3c44b0在sst39vf1601建立jffs2的问题
  • 关于文件系统(jffs2/yaffs/FAT16)
  • 请教高手 jffs2_get_inode_nodes(): Data CRC failed on node...问题
  • 求助:如何将2.6.30上的jffs2/MTD相关代码移植到2.6.14上
  • 请教ramdisk+jffs2挂载问题
  • 求助,jffs2文件系统的export问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3