技术解析

flash 存储器用 ext4 文件系统会有问题吗
0
2021-06-16 11:58:46
idczone

目前开发用的 ARM 开发板,刷了 Ubuntu MATE 系统,今天遇到怪事: 调试的时间发现设置 GPIO 没用了,前台运行脚本错误内容为 INPUT OUPUT ERROR, 马上敲 df 命令结果也执行不了,也是同样的错误提示,敲 free 命令也不行,敲 ls 命令是行的; cd 到 df 命令所在的目录,再 ls,结果不行; 无奈重启,结果有线网口灯都不亮了。

网口灯都不亮的问题,之前就遇到过,还以为是网口坏了,重新刷系统也不行,但放了几天以后,网口灯神奇地好了。

现在怀疑是要么是 flash 存储器坏了,要么是文件系统不行;个人更倾向于文件系统,flash 存储器固然容易坏,但文件系统应该有检测哪块区域坏掉的能力,好像有专门的 flash 文件系统


flash 存储器有许多种,你先给下你用的型号。

刚才又试了下那个坏的板了,结果又全部恢复了,现在怀疑现场有干扰,给板子加个壳应该能减小干扰吧

关系应该不大,不过我用的是 flash 专用文件系统 f2fs

从现在又恢复的情况看,干扰的可能性比较大。现场和开发板放在一起的设备还有一个路由器,一个开关电源,会不会被开关电源干扰了

flash 加个金属壳?

……flash 坏的几率这么大,居然不怀疑,怀疑 ext4 ?
文件检测到坏块又能怎样处理?除了给你返回 IO error 还能怎么处理?
当然,ext4 确实没有 crc 之类机制,zfs 和 btrfs 有。但这和是不是面向 flash 无关。
另外,数字信号没那么容易干扰……
坏了某一个块,没用到的话,是不会出错的。所以我的判断是,有坏块,只是当前没用到那一块。全盘扫描一下,看有没有办法屏蔽掉那些块,将就用吧

我的路由器经常 I/O input error 刷了新的 OP 又撑了两年

flash 驱动能屏蔽坏块就没什么问题

树莓派这样子大概率是硬件问题,不会是文件系统问题。

关键看你的板子用的什么 flash 啊,如果是 eMMC 之类的带主控的那基本就当优盘用,啥文件系统区别不大。要是 NAND 或 NOR flash 的话一般要用专门的文件系统

理论上断电可能会有问题,不过概率非常非常小。nandflash 上 jffs2 和 ubifs 用的比较多,也用 soc 厂商自己实现的 nandflash 驱动带坏块管理然后上面跑 ext2/3/4

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服