视频推荐
系统没有正常关机,导致磁盘出现文件系统错误或者变为只读;
频繁读写数据,文件系统中文件被损坏或者变为只读;
案例回顾
案例1
案例2
案例3
M280工控板在运行一段时间后,/opt目录下的文件不能编辑,编辑的时候会出现只读的情况,但是文件的属性又不是只读的。
案例1的问题可能是本身ubifs的机制问题,解决方式是通过更新ubifs数据分区的格式为yaffs格式。
偶发性的opt目录只读问题,暂时没有好的办法去解决。一般情况下,建议在对opt分区或者文件系统进行写操作时,使用sync命令或函数同步数据。由于SLC NandFlash的标准读写次数上限为10万次,因此,不建议太频繁的进行擦除写入。
当然,不单只有ubifs文件系统才会出现opt目录只读问题,在ext4和yaffs2的文件系统也有出现。比如没有正确按照文档的步骤操作打包或者烧写文件系统的镜像,也会直接造成文件系统镜像损坏。当文件系统出现损坏或错误时,操作系统会将其自动挂载为只读模式,以防止进一步的数据损坏。这是为了保护数据的完整性和安全性。有时,操作系统在引导过程中会自动检测文件系统错误。为了避免这些错误进一步扩散,操作系统会将文件系统以只读模式挂载,以便用户可以修复错误。
还有一种是人为主动将其挂载为只读模式,将文件系统以只读模式挂载可以增加系统的安全性,防止未经授权的用户修改或删除关键文件。特别是在网络环境中,只读文件系统可以起到一定的保护作用。可以在发生损坏、错误、硬件故障时保护数据的完整性和安全性。
根据应用场景选择合适的文件系统,能有效减少opt分区变为只读的概率,提高产品的稳定性。
图1和图2摘自TOSHIBA的公开文档,为我们在做文件系统的选择时提供了很好的参考。图1列出了电子产品对文件系统的参数要求,如快速启动、IO性能、内存消耗、使用寿命和掉电忍受能力。
不同的文件系统因为设计理念的不同,在上述因素的实现以及应用场合也是不一样的。在图2所列的4种文件系统特性对比中,可以很清楚看到,YAFFS2对内存消耗比较小,但不太适合于经常写数据的应用,比较适合于存储静态数据的应用场景。如果要进行动态数据存储,建议用户进行数据写平衡加强处理。而UBIFS文件系统则相反,对内存消耗较大,能适用于频繁写数据的场合,但因为文件系统缓存的原因,在抗掉电能力稍弱,需要在硬件和系统方面做一些补救。
简单归纳一下,在产品设计中一定要根据应用场景来选择合适的文件系统才能保证产品稳定和数据可靠。不经常写数据可优先选择YAFFS2,经常写数据则应当考虑UBIFS;经常异常掉电,优先选择YAFFS2,有掉电保护则可选择UBIFS。