IO 错误,但 badblocks 和 fsck 很满意

IO 错误,但 badblocks 和 fsck 很满意

我有一个 ext4 分区,具有以下底层堆栈:

  • sda1 和 sdb1 一起组成 RAID1,产生 md0
  • md0 经过 LUKS 加密,生成 md0_crypt
  • md0_crypt 之上是单个 LVM 卷 mv0_vg_media,安装在 /home/media 下

执行时,cp /home/media/hierarchy/photo.jpg /tmp我收到 IO 错误(但仅针对大约 20 个文件,数万个文件中)。

然而,当我尝试调试问题时:

  • 当 IO 错误发生时,dmesg 和 syslog 都保持干净。 (编辑:澄清:这意味着 dmesg 或 syslog 中没有记录任何与磁盘相关的输出,即使--follow在发生读取错误时日志通过选项处于活动状态。)
  • sda 和 sdb 上的坏块不会显示任何错误
  • fsck on/dev/mapper/md0_vg_media仅输出“可以更窄。忽略。”警告但没有错误,并且自动更正选项无法修复任何问题。

我很困惑。我可以删除这些文件并重新同步它们,但如果我不知道问题到底是什么,那么这是一个坏主意。

我怎样才能进一步调试这个?

编辑:

根据评论和进一步的研究,我尝试了以下方法(徒劳),结果如下:

  • mdadm --examine /dev/sda(与 sdb 相同)返回:/dev/sda: MBR Magic : aa55 Partition[0] : 3907029167 sectors at 1 (type ee)
  • mdadm --examine-badblocks /dev/sda(与 sdb 相同)返回:mdadm: mbr metadata does not support badblocks
  • cat /sys/block/md0/md/mismatch_cnt包含值0(零)
  • echo 'check' > /sys/block/md0/md/sync_action执行检查但不会发现任何错误。 Dmesg 有两个条目:[734796.807172] md: data-check of RAID array md0紧接着是下面的:[754370.977181] md: md0: data-check done.

相关内容