我有一块主板,运行 Linux(RedHat,内核:2.4.32)。这块主板已经运行了很长时间。然而突然间,日志中出现了一些错误,并且 Compact Flash(主板上有)被安装为只读。
以下是相关日志:
1)从“dmesg”的输出来看:
hda: write_intr error1: nr_sectors=2, stat=0x51
hda: write_intr: status=0x51 { DriveReady SeekComplete Error }
hda: write_intr: error=0x80 { BadSector }, LBAsect=35344, sector=33360
end_request: I/O error, dev 03:01 (hda), sector 33360
journal_bmap: journal block not found at offset 3191 on ide0(3,1)
Aborting journal on device ide0(3,1).
hda: write_intr error1: nr_sectors=2, stat=0x51
hda: write_intr: status=0x51 { DriveReady SeekComplete Error }
hda: write_intr: error=0x80 { BadSector }, LBAsect=2534, sector=550
end_request: I/O error, dev 03:01 (hda), sector 550
ext3_abort called.
EXT3-fs abort (device ide0(3,1)): ext3_journal_start: Detected aborted journal
Remounting filesystem read-only
EXT3-fs error (device ide0(3,1)) in start_transaction: Journal has aborted
2)“mount”确认CF实际上已经被安装为只读:
/dev/hda1 on /mnt/compactFlash type ext3 (ro,mand,noatime,nodiratime)
正常情况下它应该是读写(rw)。
3)在系统日志中,我观察到与 I/O 失败相关的错误:
kernel: EXT3-fs unexpected failure: (((jh2bh(jh))->b_state & (1UL << BH_Uptodate)) != 0);
kernel: Possible IO failure.
kernel: EXT3-fs unexpected failure: (((jh2bh(jh))->b_state & (1UL << BH_Uptodate)) != 0);
kernel: Possible IO failure.
我在谷歌上查找了这个错误,(RedHat 邮件档案),并推荐使用 e2fsck。因此,我执行了 fsck,但它尝试修复了许多错误,但闪存中的许多文件最终都丢失了,并且主板在再次重启后无法启动。
有什么建议么?
答案1
更换 Compact Flash 卡,它可能已损坏。
答案2
用一张新的 CompactFlash 卡替换坏掉的卡。它们不是永久的,而且从它的声音来看,这张卡几乎肯定早已过了使用寿命。
答案3
正如其他人所说,更换卡。Compact Flash 有一个非常有限的写入寿命。如果必须使用,请确保尽可能只将其用于读取。许多使用紧凑型闪存卡的系统使用 ramdisk 来存储易失性数据,并且仅在系统完全关闭时写入卡,然后在重新启动时读取并放回 ramdisk。