
私は、btrfs raid1 アレイに 3TB ディスクのペアを持っていました。
これらのディスクの 1 つが故障し始めた (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
。
データは完全にバックアップされていますファイルシステムはオンラインで正常に動作していますしかし、このエラーのためバランスをとることができません。スクラブを実行すると、ディスクを交換する前と同様に、修正できないエラーが少量発生します。
おそらく、どうすればいいのか疑問に思いました。
- 破損したファイルを見つけてバックアップから復元する
- ファイルシステム上のトランザクションをリセットしてエラーを削除します
- バランス調整中のエラーを無視する
...またはその他の合理的な解決策。
ありがとう!
答え1
この問題を解決するために、私はいくつかの追加試行を行いましたが、最終的にはファイルシステムをクリーンに再フォーマットすることによってのみ問題が解決しました。
ディスクからデータを転送した後、2 つの危険なコマンドbtrfs check --init-csum-tree
と 1 つのコマンドを試しましたがbtrfs check --repair
、どちらも害はなく、問題は解決しませんでした。
再フォーマット後、データを再度ファイルシステムに転送し、btrfs filesystem balance
およびを実行したbtrfs filesystem scrub
ところ、すべてが再び動作するようになりました。
乾杯!