I / Oエラーが発生しましたが、バッドブロックを実行した後、すべてが正常に戻ります。これはどのように可能ですか?

I / Oエラーが発生しましたが、バッドブロックを実行した後、すべてが正常に戻ります。これはどのように可能ですか?

長すぎる。

ハードドライブが破損しているようです。mkfs.ext4新しく作成されたGPTテーブルがあってもパーティションをフォーマットできません(I / Oエラー)。 SMARTテストでは、いくつかのエラーが表示されます。ディスクを捨てようとしました。その前にはbadblocks好奇心に徹底したテストをしてみました。とても驚きです。不良ブロックを検出できませんでした! GPartedに戻り、GPTテーブルと複数のパーティションが作成されました。今、すべてがうまくいきます!あなたは何をしましたかbadblocks

完全な物語

今何が起こったのかを調べようとしています。 HDDにパーティションを作成できなかったため、HDDを破棄しようとしましたが、SMARTにいくつかのエラーが表示されました。ディスクを捨てる前にただ遊んでみたかったbadblocks…大きな驚き:badblocksディスクが修正されたようです!私はそれができるかどうかわからなかった!だから今、あなたは実際にディスクを使うことができ、うまく動作することができて幸せです。しかし、それでもまだ何が起こったのかを調べようとしています!

これは私が何年も使っていない4TB Seagateハードドライブです。 SATA←USBアダプターに接続しました(アダプターはうまく機能し、他のいくつかのHDDと一緒に使用します)。 Wirh GParted 新しい GPT パーティションテーブルを作成し、パーティションを作成しました。最後まで進めません。mkfs.ext4I/O エラーが発生しました。

(...)
Allocating group tables: done
Writing inode tables: done
Creating journal (131072 blocks): done
Writing superblocks and filesystem accounting information: 0/895
mke2fs 1.46.2 (28-Feb-2021)
mkfs.ext4: Input/output error while writing out and closing file system

別のUSBアダプタ、異なるUSBケーブル、異なるUSBポートを使用して何度も試しました。働いたことがありません。

その後、SMART簡単なテストを行いました。

# smartctl -t short -C /dev/sde
(...)

# smartctl -a /dev/sde
(...)
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short captive       Completed: read failure       90%       528         191105024
(...)

どうやらハードドライブに欠陥があるようです。そうですか?それで捨てようとしましたが、badblocks前にテストをしてみました。

# badblocks -wvs -t random -b 4096 /dev/sde
Checking for bad blocks in read-write mode
From block 0 to 976754645
Testing with random pattern: done                                                 
Reading and comparing: done                                                 
Pass completed, 0 bad blocks found. (0/0/0 errors)

テストはエラーなしで約19時間(4TBディスクベース)の間行われた。驚きました!

GPartedに戻り、新しいGPTテーブルといくつかのパーティションを作成し、すべてが正常でした。

結局のところ、ディスクのパフォーマンスを確認するためにいくつかの一般的なコピーテストを実行し、すべてが大丈夫に見えました(大容量ファイルのコピーでは155 MB / s R / W)。

completed without error今回は別のSMARTショートテストを行いました。

# smartctl -t short -C /dev/sde
(...)

# smartctl -a /dev/sde
(...)
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short captive       Completed without error       00%       549         -
# 2  Short captive       Completed: read failure       90%       528         191105024
(...)

誰でも理解できますか?ランニングはbadblocks何とか私のハードドライブを修理したのと同じです。どうやってこれができますか?このbadblocksようなこともしなければなりませんか?

注:必要に応じて追加情報(完全なSMART出力と完全なGParted結果)を提供できます。

答え1

はい、badblocksこれらの効果が発生する可能性があります。実際には意図的に設計されているわけではありませんが、ハードドライブは欠陥のあるブロックを再マップすることができ、書き込み中に欠陥のあるブロックを見つけたときにそれを行うことができるからです(データが失われることはありません)。ドライブには、アクセス可能なすべてのセクタに書き込むことでこれを行うのに十分な機会がありますbadblocks。ドライブに失敗したすべてのブロックを再マップするのに十分な空き容量がある場合、badblocks問題は検出されません。

smartctl -aドライブでこれを実行すると、「再割り当てされたセクタの数」(プロパティ5)がゼロでないことがわかります。これは、セクタが再マップされたことを示します。

現在、ドライブは正常に動作する可能性がありますが、これはドライブに問題があることを意味するため、ストレージの一部に障害が発生した場合は、近いうちにより多くのドライブに障害が発生する可能性があるため、疑わしいはずです。

また、見ることができますSSD:「不良ブロック」/「e2fsck -c」対再割り当て/再マッピングされたセクタ

関連情報