Storage
btrfs - 失敗的磁碟生成校驗和錯誤,磁碟已更換,錯誤仍然存在
我在 btrfs raid1 陣列中有一對 3TB 磁碟。
其中一個磁碟開始出現故障(smartd 顯示壞扇區),因此我購買了一對新的 8TB 驅動器來替換陣列中的兩個磁碟。
我將兩者都替換為
btrfs replace
,然後執行了btrfs balance
- 失敗並顯示以下消息:[ 5063.136378] BTRFS error (device sdc): parent transid verify failed on 5153170751488 wanted 1433374 found 1417912 [ 5063.140428] BTRFS error (device sdc): parent transid verify failed on 5153170751488 wanted 1433374 found 1417912
現在,我在更換磁碟之前就已經看到了這些消息,但是現在由於兩個磁碟都已更換,我相信它與
btrfs
.我的數據已完全備份**,文件系統線上且工作正常**,但由於此錯誤,我無法進行平衡。執行清理會產生少量無法糾正的錯誤,就像我更換磁碟之前一樣。
我想知道我怎麼能,也許:
- 找出損壞的文件並從備份中恢復它們
- 重置文件系統上的事務以消除錯誤
- 平衡時忽略錯誤
…或任何其他合理的解決方案。
謝謝!
我做了一些額外的嘗試來解決這個問題,最終只有一個乾淨的文件系統重新格式化解決了這個問題。
一旦我將數據從磁碟中轉移出來,我就嘗試了兩個危險的命令 -
btrfs check --init-csum-tree
和一個btrfs check --repair
- 這兩個都沒有造成任何傷害,但沒有解決問題。重新格式化後,我再次將數據傳輸回文件系統,執行 a
btrfs filesystem balance
和 abtrfs filesystem scrub
,現在一切正常。乾杯!