AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 466169
Accepted
SF.
SF.
Asked: 2013-01-12 05:17:43 +0800 CST2013-01-12 05:17:43 +0800 CST 2013-01-12 05:17:43 +0800 CST

使SD卡防损坏

  • 772

我的嵌入式 linux 设备使用 SD 卡来保存某些诊断数据,对于内部闪存来说太多了。

问题是如果设备意外关闭,卡上的文件系统 (FAT32) 就会损坏。

没有办法防止意外断电或用户那样关闭它,并且该设备应该是相对免维护的。更糟糕的是,数据是连续写入的,因此损坏非常频繁,Linux 在检测到故障 FS 后会静默地将其重新挂载为只读。

您建议采用哪些方法来缓解这种情况?在启动时自动运行 fsck.vfat 是否足够?

更多信息:

  • 该卡不应被用户认为是可移动的。它被认为是内部磁盘。存储在其中的任何数据都可以通过网络下载或下载到 USB 驱动器,系统会自动清除最旧的条目。这意味着它不需要在普通 PC 上可读。
  • 系统目前支持FAT、yaffs和jffs2。向内核添加其他文件系统是可能的,但如果存在其他途径,我们会优先选择它们。
  • 写入可以按需暂停甚至几分钟而不会丢失数据。
  • 部分数据丢失或轻微损坏是可以接受的。完全停止日志记录不是。
  • 大多数情况下,断电事件是完全不可预测的。
  • 该系统在 ARM9、200MHZ、64MB RAM、32MB 内部闪存上运行,并耗尽了大部分 CPU 能力来发挥其主要作用。在考虑奇特的资源密集型解决方案时,请考虑到这一点。
linux
  • 2 2 个回答
  • 3078 Views

2 个回答

  • Voted
  1. Best Answer
    the-wabbit
    2013-01-12T05:41:57+08:002013-01-12T05:41:57+08:00

    您可以使用该block2mtd驱动程序来使用事务性 jffs2 或 yaffs(2) 文件系统,您似乎在其他地方为您的 SD 卡使用,这将解决您在关机时数据丢失或文件系统损坏的问题。

    但是,这样做可能会引发其他问题。由于 SD 卡可能有自己的磨损均衡和扇区重新映射机制,这些可能会干扰 jffs2 和 yaffs 的实现来执行相同的操作,从而缩短 SD 卡的使用寿命或性能。如果这不是问题,应该值得一试。

    • 8
  2. rackandboneman
    2013-01-12T05:41:24+08:002013-01-12T05:41:24+08:00

    检查您使用的内核是否支持 vfat 的刷新和/或同步标志(似乎有些版本会忽略它,小心!)。

    或者如果所有内容都可以放入一个文件(就像原始日志流的情况一样!)或几个固定大小的文件(使用分区;),则完全取消文件系统

    • 5

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve