我有一個 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.