0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何正确选择嵌入式文件系统?

ZLG致远电子 2025-03-17 11:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Linux嵌入式系统中,文件系统和缓存机制常导致数据存储稳定性问题。本文通过案例分析原因,对比不同文件系统特性,为开发者提供优化建议,助力提升数据稳定性和系统可靠性。


e17dac88-02e0-11f0-9434-92fbcf53809c.jpg  前言

基于Linux的嵌入式操作系统,由于有文件系统以及缓存的存在,在数据存储方面的使用注意事项比单片机直接写存储器的应用会有更多的要求才能达到数据的稳定可靠。如下都是比较常见的异常:

系统没有正常关机,导致磁盘出现文件系统错误或者变为只读;

频繁读写数据,文件系统中文件被损坏或者变为只读;

  1. 在读写过程中突然断电,导致文件系统变为只读。


e17dac88-02e0-11f0-9434-92fbcf53809c.jpg  案例回顾

先看几个真实案例:

案例1

有客户反馈在使用M3354-512LI-F1GT的核心板当中。发现会出现文件系统变成只读的现象,此时主机就不能正常使用。

案例2

EPC-287C-L ARM9系列核心板,当网关程序和配置信息放在/opt文件夹下面执行一段时间,偶尔出现/opt文件夹下的信息都被清空或者里面权限变为只读。

案例3

M280工控板在运行一段时间后,/opt目录下的文件不能编辑,编辑的时候会出现只读的情况,但是文件的属性又不是只读的。

案例分析

案例1的问题可能是本身ubifs的机制问题,解决方式是通过更新ubifs数据分区的格式为yaffs格式。

偶发性的opt目录只读问题,暂时没有好的办法去解决。一般情况下,建议在对opt分区或者文件系统进行写操作时,使用sync命令或函数同步数据。由于SLC NandFlash的标准读写次数上限为10万次,因此,不建议太频繁的进行擦除写入。

  • 硬件上,为了保证产品稳定,建议添加备份电源或者大电容,保证10s左右的续航时间,让系统有足够时间去做文件系统同步。


e17dac88-02e0-11f0-9434-92fbcf53809c.jpg  要点提示

当然,不单只有ubifs文件系统才会出现opt目录只读问题,在ext4和yaffs2的文件系统也有出现。比如没有正确按照文档的步骤操作打包或者烧写文件系统的镜像,也会直接造成文件系统镜像损坏。当文件系统出现损坏或错误时,操作系统会将其自动挂载为只读模式,以防止进一步的数据损坏。这是为了保护数据的完整性和安全性。有时,操作系统在引导过程中会自动检测文件系统错误。为了避免这些错误进一步扩散,操作系统会将文件系统以只读模式挂载,以便用户可以修复错误。

还有一种是人为主动将其挂载为只读模式,将文件系统以只读模式挂载可以增加系统的安全性,防止未经授权的用户修改或删除关键文件。特别是在网络环境中,只读文件系统可以起到一定的保护作用。可以在发生损坏、错误、硬件故障时保护数据的完整性和安全性。

根据应用场景选择合适的文件系统,能有效减少opt分区变为只读的概率,提高产品的稳定性。

图1和图2摘自TOSHIBA的公开文档,为我们在做文件系统的选择时提供了很好的参考。图1列出了电子产品对文件系统的参数要求,如快速启动、IO性能、内存消耗、使用寿命和掉电忍受能力。

e18f1540-02e0-11f0-9434-92fbcf53809c.png

图1 选择文件系统考虑的因素

不同的文件系统因为设计理念的不同,在上述因素的实现以及应用场合也是不一样的。在图2所列的4种文件系统特性对比中,可以很清楚看到,YAFFS2对内存消耗比较小,但不太适合于经常写数据的应用,比较适合于存储静态数据的应用场景。如果要进行动态数据存储,建议用户进行数据写平衡加强处理。而UBIFS文件系统则相反,对内存消耗较大,能适用于频繁写数据的场合,但因为文件系统缓存的原因,在抗掉电能力稍弱,需要在硬件和系统方面做一些补救。

e1a1ac6e-02e0-11f0-9434-92fbcf53809c.png

图2 几种文件系统的特性对比

简单归纳一下,在产品设计中一定要根据应用场景来选择合适的文件系统才能保证产品稳定和数据可靠。不经常写数据可优先选择YAFFS2,经常写数据则应当考虑UBIFS;经常异常掉电,优先选择YAFFS2,有掉电保护则可选择UBIFS。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5186

    文章

    20146

    浏览量

    328819
  • 文件系统
    +关注

    关注

    0

    文章

    301

    浏览量

    20811
  • 嵌入式操作系统

    关注

    1

    文章

    124

    浏览量

    32273
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式文件系统znFAT介绍

    今天给大家介绍一款适用于单片机的嵌入式文件系统——znFAT。 这款文件系统嵌入式大佬于振南开发,并在 gitee 开源共享的。
    发表于 09-13 09:22 2465次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>文件系统</b>znFAT介绍

    嵌入式文件系统构建

    Linux支持多种文件系统,同样,嵌入式Linux也支持多种文件系统。虽然在嵌入式系统中,由于资源受限的原因,它的
    发表于 09-02 14:25

    基于嵌入式视频存储的专用文件系统该怎么设计?

    目前的硬盘录像机中,基于PC和采集卡的一般采用Windows系统文件系统则多采用NTFS或FAT32;而嵌入式硬盘录像机所采用的文件系统则与厂商
    发表于 11-06 08:17

    嵌入式文件系统概述

    嵌入式Linux系统移植-(Linux文件系统嵌入式文件系统概述·文件是有组织、有次序地存储在
    发表于 11-05 06:29

    适合嵌入式Linux应用的文件系统—— JFFS

    介绍一种适合嵌入式Linux应用的文件系统—— JFFS。JFFS是一种在开源模式下开发的文件系统, 为嵌入式Linux 系统的应用提供了一
    发表于 04-16 11:07 4次下载

    适合嵌入式Linux应用的文件系统—— JFFS

    介绍一种适合嵌入式Linux应用的文件系统—— JFFS。JFFS是一种在开源模式下开发的文件系统, 为嵌入式Linux 系统的应用提供了一
    发表于 05-14 15:27 12次下载

    嵌入式系统中的线性Flash 文件系统设计

    设计一种能够在典型嵌入式环境下应用的线性文件系统, 为嵌入式系统Flash 空间的管理提供一种非常有效的手段。它包装和通用文件系统类似的AP
    发表于 05-15 15:07 10次下载

    构造嵌入式Linux的文件系统

    文件系统是Linux 系统最基本的资源。本文介绍了一种嵌入式Linux 文件系统的构造过程,较为详细地讲解了如何选择和配置所需的
    发表于 08-07 09:11 10次下载

    嵌入式Linux文件系统的研究与应用

    随着嵌入式系统的发展,使用Linux操作系统搭建的嵌入式平台得到了越来越广泛的应用。文件系统嵌入式
    发表于 08-13 08:59 16次下载

    基于DSP平台的嵌入式文件系统的开发与研究

    基于DSP平台的嵌入式文件系统的开发与研究
    发表于 10-19 14:28 4次下载
    基于DSP平台的<b class='flag-5'>嵌入式</b><b class='flag-5'>文件系统</b>的开发与研究

    嵌入式文件系统及特点

      近年来,计算机嵌入式逐渐被人们所追捧,想要学习嵌入式当然离不开嵌入式系统啦,下面尚观教育小编带同学们了解嵌入式
    发表于 09-06 14:29 1719次阅读

    基于嵌入式视频存储的专用文件系统设计

    关键词:嵌入式 , 视频存储 , 文件系统 目前的硬盘录像机中,基于PC和采集卡的一般采用Windows系统文件系统则多采用NTFS或FAT32;而
    发表于 12-02 18:33 1075次阅读

    Linux嵌入式文件系统如何构建

    Linux支持多种文件系统,同样,嵌入式Linux也支持多种文件系统。虽然在嵌入式系统中,由于资源受限的原因,它的
    发表于 06-18 09:23 1335次阅读

    嵌入式Linux系统移植-(Linux文件系统

    嵌入式Linux系统移植-(Linux文件系统嵌入式文件系统概述·文件是有组织、有次序地存储在
    发表于 11-02 12:51 16次下载
    <b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>系统</b>移植-(Linux<b class='flag-5'>文件系统</b>)

    文件系统】FatFs文件系统嵌入式芯片LPC18XX上的移植

    文件系统】FatFs文件系统嵌入式芯片LPC18XX上的移植
    发表于 12-04 10:51 12次下载
    【<b class='flag-5'>文件系统</b>】FatFs<b class='flag-5'>文件系统</b>在<b class='flag-5'>嵌入式</b>芯片LPC18XX上的移植