フォーマットせずにハードドライブの不良セクタをマークする


22

自宅のUbuntuサーバーでは、何らかの理由で1つのドライブが読み取り専用になっていることに気付きました。掘り下げてみると、これはハードドライブにエラーがある場合に起こり得ることがわかりました。エラーをチェックするために不良ブロックを使用しましたが、実際、破損したセクターがいくつかあります。

ほとんどの場合、唯一の合理的なアクションは、データのバックアップ、HDDの取り外し、新しいHDDの購入を試みることです。ただし、このサーバーには複数の場所でバックアップしていないものは何もないため、死ぬまで使用したいと思います。音楽のストリーミングといくつかの簡単なスクリプトの実行に使用します。いずれにせよ、それはすべてを再インストールする大きな騒ぎになります。

hddをフォーマットせずにこれらの不良ブロックをマークする方法はありますか?

回答:


29

破損したファイルシステムではなく、ディスク上の物理的な不良ブロックについて話していると思います。

ディスクの物理的な状態を確認するには、インストールするのが最善です smartmontools

sudo apt-get install smartmontools

これは、すべての最新のディスクがSMARTというシステムを使用して正常性状態を記録するために機能します

smartctrlコマンドを使用して、このステータスを読み取ります。たとえば、最初のディスク呼び出しからすべての属性を読み取るには

sudo smartctl --all /dev/sda

全体的な健康状態について話す行に注意してください。これがエラーを示すと、ディスクがすぐに故障する可能性が非常に高くなります。

SMART overall-health self-assessment test result: PASSED

確認する他の行は、保留中のセクター数と再割り当てされたセクターです。

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       48
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       2

再割り当てリストは、通常、未加工フィールドに、ディスクが動作中のスペアセクタと交換した不良セクタの数を示します。保留は、次の書き込みが失敗した場合に再割り当てされる可能性のあるセクターです。

モデルでサポートされている場合、ディスクのセルフテストをトリガーすることもできます

sudo smartctl -t long /dev/sda

すべてのセクターのチェックを強制するには、badblocksデータが書き込まれるモードで使用します。一般的には実行しても安全ですが、ディスクに余分な負荷がかかり、ディスクが失敗する可能性があることに注意してください。常にデータのバックアップを作成してください。

sudo badblocks -svvn -c 262144 /dev/sda

この方法でディスクを完全に処理した場合、ディスクコントローラーはすべての不良ブロックを動作中のブロックに置き換え、SMARTログで再割り当てされた数が増えます。


2
-c一度にテストされるブロックの影響またはブロックの数は何ですか?つまり、デフォルトの64に比べてなぜそんなに大きな値なのですか?
グレオール14

4
1024バイトのデフォルトブロックサイズに一度に64ブロックのデフォルトを掛けると、各リクエストで64kのみが処理されます。最大150 MiB / sのスループットを備えた最新のディスクでは、これは私が快適に感じるよりも多くのオーバーヘッドをもたらします。バス上のデータを待たずに、最も効率的な方法でデータを処理する機会をドライブに与えたいです。
user228505 14

言います:/ dev / sdaは明らかにシステムによって使用されています。badblocksを実行するのは安全ではありません!
調光

1
@Dimsアクティブにマウントされたディスクでこれを実行しないように指示します。最初にディスクをアンマウントします。あなたの場合、それはあなたのシステムドライブかもしれません。したがって、最初にレスキューシステムを起動します。
user228505

2
@Dimsとにかくそれを実行したい場合、-forceオプションがあります。すなわち、sudo badblocks -svvn -c 262144 / dev / sda -force
ADR
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.