不良セクタは、ディスクの障害を示していますか?


15

私のUbuntu 13.10システムは、この1日ほどで非常に貧弱になりました。カーネルログを見ると、<1yr古い3TB SATAディスクが特定のセクターで問題を抱えているようです。

Nov  4 20:54:04 mediaserver kernel: [10893.039180] ata4.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Nov  4 20:54:04 mediaserver kernel: [10893.039187] ata4.01: BMDMA stat 0x65
Nov  4 20:54:04 mediaserver kernel: [10893.039193] ata4.01: failed command: READ DMA EXT
Nov  4 20:54:04 mediaserver kernel: [10893.039202] ata4.01: cmd 25/00:08:f8:3f:83/00:00:af:00:00/f0 tag 0 dma 4096 in
Nov  4 20:54:04 mediaserver kernel: [10893.039202]          res 51/40:00:f8:3f:83/40:00:af:00:00/10 Emask 0x9 (media error)
Nov  4 20:54:04 mediaserver kernel: [10893.039207] ata4.01: status: { DRDY ERR }
Nov  4 20:54:04 mediaserver kernel: [10893.039211] ata4.01: error: { UNC }
Nov  4 20:54:04 mediaserver kernel: [10893.148527] ata4.00: configured for UDMA/133
Nov  4 20:54:04 mediaserver kernel: [10893.180322] ata4.01: configured for UDMA/133
Nov  4 20:54:04 mediaserver kernel: [10893.180345] sd 3:0:1:0: [sdc] Unhandled sense code
Nov  4 20:54:04 mediaserver kernel: [10893.180349] sd 3:0:1:0: [sdc]
Nov  4 20:54:04 mediaserver kernel: [10893.180353] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Nov  4 20:54:04 mediaserver kernel: [10893.180356] sd 3:0:1:0: [sdc]
Nov  4 20:54:04 mediaserver kernel: [10893.180359] Sense Key : Medium Error [current] [descriptor]
Nov  4 20:54:04 mediaserver kernel: [10893.180371] Descriptor sense data with sense descriptors (in hex):
Nov  4 20:54:04 mediaserver kernel: [10893.180373]         72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
Nov  4 20:54:04 mediaserver kernel: [10893.180384]         af 83 3f f8
Nov  4 20:54:04 mediaserver kernel: [10893.180389] sd 3:0:1:0: [sdc]
Nov  4 20:54:04 mediaserver kernel: [10893.180393] Add. Sense: Unrecovered read error - auto reallocate failed
Nov  4 20:54:04 mediaserver kernel: [10893.180396] sd 3:0:1:0: [sdc] CDB:
Nov  4 20:54:04 mediaserver kernel: [10893.180398] Read(16): 88 00 00 00 00 00 af 83 3f f8 00 00 00 08 00 00
Nov  4 20:54:04 mediaserver kernel: [10893.180412] end_request: I/O error, dev sdc, sector 2944614392
Nov  4 20:54:04 mediaserver kernel: [10893.180431] ata4: EH complete

kern.logファイルは、33メガバイトの周りに繰り返され、上記のエラーのほとんどがいっぱいで、部門を繰り返し、メッセージ内の任意の異なるように表示されません。

現在、マウントされていないディスクで次のコマンドを実行して、ディスクにある可能性のある問題をテストし、整理しようとしています。私は約12時間で、ディスクが非常に大きいため、さらに24/48時間かかると予想しています。

e2fsck -c -c -p -v /dev/sdc1

私の質問は次のとおりです。このドライブは故障していますか、それともここでよくある問題を見ていますか?不良セクタを修復または無視することに何か意味があるのか​​、まだ保証されている間に保証期間中にディスクを交換する必要があるのか​​、疑問に思っています。上記のコマンドに関する私の知識はやや不足しているため、それが役立つかどうかについては懐疑的です。

クイックアップデート!

e2fsckは、2日後に「iノード内の複数の要求されたブロック」で終了しました。ファイルシステムをマウントしようとするとエラーが発生し、強制的に読み取り専用に戻しました。

Nov 11 08:29:05 mediaserver kernel: [211822.287758] EXT4-fs (sdc1): warning: mounting fs with errors, running e2fsck is recommended
Nov 11 08:29:05 mediaserver kernel: [211822.301699] EXT4-fs (sdc1): mounted filesystem with ordered data mode. Opts: errors=remount-ro

セクターを手動で読み取ろうとしています。

sudo dd count=1 if=/dev/sdc of=/dev/null skip=2944614392
dd: reading ‘/dev/sdc’: Input/output error
0+0 records in
0+0 records out
0 bytes (0 B) copied, 5.73077 s, 0.0 kB/s

それに書き込もうとしています:

sudo dd count=1 if=/dev/zero of=/dev/sdc seek=2944614392
dd: writing to ‘/dev/sdc’: Input/output error
1+0 records in
0+0 records out
0 bytes (0 B) copied, 2.87869 s, 0.0 kB/s

両方のカウントで、Reallocated_Sector_Ct残りは0です。

ドライブはかなり頻繁にスリープ状態になります。私はこれがファイルシステムの問題かもしれないと考えていますか?私は100%ではありません。


4
バックアップが正常であることを確認してからハードウェアをチェックすることは、ほぼ/確かに/兆候です。
シャドゥール

うーん。彼らは少し時代遅れですが、彼らは関係なくそこにあります。このドライブが別の障害のあるドライブに取って代わり、非常にイライラします。
MrNorm

ディスクに障害が発生した場合、次のQ&Aを参照してください:unix.stackexchange.com/search?q
slm

2
...このドライブで障害のあるドライブを交換した場合、ドライブではなくコントローラーである可能性があります。
シャドゥール

回答:


16

不良セクタは、常に障害のあるHDDを示しています。実際、このようなI / Oエラーが表示された瞬間、おそらく一部のデータがすでに失われている/壊れています。バックアップがない場合はバックアップを作成し、セルフテストsmartctl -t long /dev/diskを実行してSMARTデータを確認しますsmartctl -a /dev/disk。可能であれば交換してください。

不良セクターは修復できず、リザーブセクターに置き換えられます。これは、アクセスされるたびにリザーブセクターへの追加シークを必要とするため、HDDのパフォーマンスに悪影響を及ぼします。ファイルシステムレイヤーでそのようなセクターを不良としてマークすると、それらのセクターにアクセスできなくなります。ただし、どのセクタがディスクによって既に再割り当てされているかを判断するのは難しいため、ファイルシステムが影響を受ける領域を回避することを知らない可能性があります。


ありがとう。私にとって常に灰色の領域だったので、知っておくと本当に助かります。保証の範囲内であるため、ドライブをゼロにして送り返します。
MrNorm

1
そうではありません。不良セクターは、セクターへのトラフィックが著しく高いことを示しています。MOSTの場合、障害のあるディスクを示しています。シーク速度を調整して、遅い応答を悪いとマークすることができます...常に言うのは複雑すぎます。
RobotHumans

2
また、何らかの理由で実際のディスクよりも大きいファイルシステムで読み取りエラーが発生する場合があります。
トールビョーンラヴンアンデルセン

@frostschutzの意味はGet a replacement if you can.何ですか?ディスクを交換するつもりですか?
航空機

10

セクターを再割り当てするドライブを作成するには、通常、セクターに何かを書き込む必要があります。ただし、ddD isk D estroyerは)必ずしも作業を行い、かつ非常に安全ではありません:あなたは混同した場合skipseekオプションを、あなたは簡単で足に自分自身を撮影することができskipピングNの最初のブロックを/dev/zero、その「オフセット」からブロックを書く上でハードディスクのセクター0

セクターをゼロで強制的に上書きしたい場合は、次を使用する必要がありますhdparm

% sudo hdparm --read-sector 833192656 /dev/sda
/dev/sda:
reading sector 833192656: FAILED: Input/output error

はい、セクター833192656もスマートテストで失敗していました。ゼロを書き込むには、次を使用します--write-sector

% sudo hdparm --write-sector 833192656 /dev/sda
/dev/sda:
Use of --write-sector is VERY DANGEROUS.
You are trying to deliberately overwrite a low-level sector on the media.
This is a BAD idea, and can easily result in total data loss.
Please supply the --yes-i-know-what-i-am-doing flag if you really want this.
Program aborted.

安全対策として、 hdparm--yes-i-know-what-i-am-doingスイッチをに渡さない限り、実際には何も書きませんhdparm

% sudo hdparm --yes-i-know-what-i-am-doing --write-sector 833192656 /dev/sda
/dev/sda:
re-writing sector 833192656: succeeded
% sudo hdparm --read-sector 833192656 /dev/sda                              

/dev/sda:
reading sector 833192656: succeeded
0000 0000 0000 0000 0000 0000 0000 0000
[      ... more zeroes here...        ]
0000 0000 0000 0000 0000 0000 0000 0000

%

これは古代のアワーですが、「ddは常に機能しない」とはどういう意味ですか。指示どおりにデータを書き込めない可能性があることを提案していますか?データをコピーするだけで、特に失敗しやすいものは何もしません。ほとんどすべてのプログラミング言語で2行を使用して同じ結果を得ることができます。
-TooTea

7

いいえ、不良セクタは常にドライブの故障を示しているわけではありません。停電時に書き込みが進行中の場合、セクタ内のデータが破損し、読み取りを試みたときにエラーが発生することがあります。セクターに新しいデータを書き込もうとしても、物理的に何も問題がないので、うまくいくかもしれません。

走れます badblocks -nドライブ上でして、すべてのセクターの読み取りと再書き込みを行うます。または、問題のセクターの番号が既にわかっている場合は、ddゼロを書き込むために使用できます。SMART統計はで確認できsmartctl -aます。保留中の再割り当てカウントは、読み取りに失敗したセクターの数を示しているはずです。また、セクターへの書き込みを試みると、このカウントは減少します。再割り当てされたセクタカウントが増加する場合があります。この場合、物理的に不良であり、スペアプールに再マッピングされており、これはドライブが途中にあることを示している可能性があります。そうでなければ、それはちょうどスクランブルされていて、今は問題ないはずです。

最初にセクターを読んでみてください:

dd count=1 if=/dev/sda of=/dev/null skip=nnnn

それが失敗した場合、あなたは正しい数を持っているので、あなたはそれをゼロにすることができます:

dd count=1 if=/dev/zero of=/dev/sda seek=nnnn

Enterキーを押す前に、コマンドを正確に入力したことを再確認してください。


あなたのコマンドに続いて興味深い情報を得たので、あなたがそれを言うのは興味深いです。上記の質問を修正しました。
MrNorm

お使いのドライブが何らかの理由でSMARTをサポートしていないのか、それともまだ確認していないのですか?
frostschutz

1
@frostschutz 「どちらのカウントでも、 Reallocated_Sector_Ct は0のままでした。」OP SMART チェックしたようです。
CVn

@MrNorm、完全なsmartctl -a出力を質問に追加してください。
psusi

2
これを使用しないでください(常に機能するとは限りません)。スキップとシークを混同すると、代わりにMBRが上書きされます。私の答えを
アンティハパラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.