web-dev-qa-db-ja.com

smartctlは不良セクタを再テストします

今日、ドライブが24時間で故障するという通知を受け取りました。 'Reallocated_Sector_Ct'はすでに3000前後でしたが、その後数時間で4004に上昇しました。しかし、数週間前にケースを横向きにして、直立させてみました。それ以来、「Reallocated_Sector_Ct」は上昇していませんが、重要なデータを別のドライブにタール/圧縮しているため、現在多くのディスクアクティビティがあります。

ハードディスクが横に読めないことが懸念されることは知っていますが、ハードディスクを直立させて問題を解決できると思われる場合は、少なくともそれほど慌てる必要はありません。

それらの「不良セクタ」に対して再テストを実行し、テストに合格した場合にそれらを良好とマークする方法はありますか?ボックスを直立させて再テストした後、「本当に」不良セクターがいくつあるかを確認したい(もちろん、バックアップが完了した後でこれを実行する)。

違いがある場合は、Debianを使用しています。

5
Clinton

私はフォンブランドからの答えを2番目にしかできません。 SMARTで事前障害が発生した後、過去1か月間に少なくとも2台のHDDが故障するのを見てきました。

ただし、最善の策はおそらくSMART自体ではなく、badblocksユーティリティです。

badblocksにディスク全体の読み取りと再書き込みを許可して、HDDに保留中のセクターを再割り当てさせることができます。これは通常、非常にうまく機能します。

badblocksを実行する時間がない場合(大きなディスクでは数日かかる場合があります)、SMARTエラーログ(smartctl -x /dev/<hdd>そして壊れたセクターのリストを取得します。

次に、hdparmを使用してセクターを読み取ることができます。

hdparm --read-sector <sector> /dev/<hdd>` 

それが失敗した場合は、を使用して再マップを強制します

hdparm --yes-i-know-what-i-am-doing --write-sector <sector> /dev/<hdd>` 

これは非常にうまく機能します(少なくともWD-Greenドライブの場合、他のドライブについては何も言えません)

失敗したセクターのdmesgログメッセージがある場合は、さらに簡単です。

sectors=$(dmesg | grep <hdd> | grep sector | awk '{print $8}')

for s in $sectors; do <hdparm stuff>; done

ボリュームを再度マウントする前に、強制fsck

fsck -f -y /dev/<hdd> 

そして、昨日あなたにドライブが死んでいると仮定してください!

幸運を :)

10
mt_

マシンの電源を切り、交換用ディスクを入手してください!ハードディスクの不良セクタは指数関数的に増大する傾向があり、大量のデータ損失が差し迫っています。

1
vonbrand

ドライブがすでに不良としてマークして再マッピングしたセクターを再テストすることは不可能だと思います。それは「保証のために返送する」領域になります。 (たとえば、理論的には、ベンダーはそのようなドライブを検証およびリセットできるツールを持っている可能性があります)。

0
sourcejedi