BTRFSブロックを変更するには?

BTRFSブロックを変更するには?

不明な理由でBTRFSファイルシステムが破損しています。 dmesg 印刷

BTRFS critical (device sda2): corrupt leaf, slot offset bad: block=43231330304,root=1, slot=47

(dmesgトレースで1000倍以上)。

ブロック#43231330304を修正する方法は?

ベストアンサー1

あなたはインストールする必要がありますインテリジェントモニタリングツールそして長いテストをしてみてください(時間がかかります)

#smartctl -t long /dev/sd?

その後、不良ブロックでは失敗します。

Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed: read failure       80%       682         1193046

これにより、ブロックのLBAアドレス(1193046)を取得できます。

次にインストールします。sg_utils上記のlbaアドレスを使用して実行します。

# sg_verify --lba=1193046 /dev/sda

次のような回答が届きます。

# sg_verify --lba=1193046 /dev/sdb
verify (10):  Fixed format, current;  Sense key: Medium Error
 Additional sense: Unrecovered read error
  Info fld=0x123456 [1193046]
  Field replaceable unit code: 228
  Actual retry count: 0x008b
medium or hardware error, reported lba=0x123456

これにより、セクタが実際に不良であり、ディスクマイクロコントローラの障害リストに自動的に配置できないことがわかります。

次のコマンドを使用して、障害のリストを確認できます。

# sg_reassign --grown /dev/sda
>> Elements in grown defect list: 0

セクターを再配置する場合

# sg_reassign --address=1193046 -v /dev/sda

次に、追加された欠陥のリストを確認します。

# sg_reassign --grown /dev/sdb
>> Elements in grown defect list: 1

カウンターが1ずつ増えるのがわかります。

その後、実行する必要があります

#smartctl -t long /dev/sd?

ディスクがきれいになり、長いテストがエラーなしで実行されるまで、このプロセスをやり直してください。

この場合は、Steamライブラリなどの重要ではない作業にこのディスクを使用します。しかし、ディスクを交換するかどうかを確認するためでした。しかし、今はディスクは大丈夫でしょう。

おすすめ記事