最近我们在运行嵌入式 Linux 系统的 ext3 格式的闪存卡上遇到了一个问题(坏块)。启动时,启动了根文件系统检查,但它似乎挂起,因为它比平时花费的时间要长得多。后来我将卡插入另一台 PC 并检测到坏块。我现在想知道如果我等待的时间足够长,初始根文件系统检查是否也会发现修复的块。为了找到它,我检查了 tune2fs 和 e2fsck 手册页,但找不到我的问题的答案:
我可以影响使用这些自动根文件系统检查执行的检查/修复吗?如果是,我该如何配置它?
如果无法配置:究竟检查或修复了什么,默认设置是什么,自动检查使用哪些标志?
初始根文件系统检查是否发现已修复的块
仅当文件系统未启用日志功能且系统崩溃或达到重新挂载限制时,操作系统才会触发 ext3 中的自动完整 fsck。如果您尝试写入或读取坏块,它会检测到它们 - 但这不会触发自动 fsck - 它会以只读方式重新安装磁盘或引发内核恐慌,具体取决于其配置方式。
假设它是为日志记录而设置的,那么在 mount 时完成的测试仅检查可能需要前滚的日志操作。
我检查了tune2fs
您看到 -i、-C 和 -c 标志的作用了吗?(请注意,这些只会在将来重新启动时触发 fsck - 不可能在正在运行的系统上安排根 fsck)。
CF 技术的历史已经相当长,与其他格式相比也相对昂贵 - 这就引出了这样一个问题:这张卡有多老了,是否值得尝试保存它。虽然很可能运行此类设备的操作系统,但它们并不是真正用于此目的 - SATA 连接的 nand 闪存驱动器正在变得司空见惯,但它们比 SD 卡等设备成本高得多的原因是,它们包含很多内容用于管理存储和处理坏块的智能。
不幸的是,没有文件系统能够管理通过 IDE/SCSI/USB 连接的基本的、写入受限的存储设备(JFFS2 利用对底层存储的直接访问,即插入 PCIe 总线的设备)。
期望 CF 设备像普通磁盘一样运行当然是一个非常广告的想法 - 看看 puppy - 它通过覆盖做了一些非常聪明的事情来减少对磁盘的写入量,尽管它可以做很多调整所有文件系统以减少写入频率 - 查看调整笔记本电脑上的 Linux 以减少 I/O 的建议。
归档时间: |
|
查看次数: |
673 次 |
最近记录: |