web-dev-qa-db-ja.com

不良セクタの再割り当て[Linux]

不良セクタを再割り当てしようとしています。これを読んだ後 質問 私の理解は、ハードドライブが自動的に再割り当てを試みるということです。プロセスをトリガーするために、ddを使用してセクターに書き込もうとしましたが、何も変更されていません。

$ smartctl -a /dev/sda
...
5 Reallocated_Sector_Ct   ...       0
197 Current_Pending_Sector  ...       1
...

不良セクタは:215040

$ dd if=/dev/sda of=/dev/null bs=512 count=1 skip=215040
io-error on reading

書き込み時にセクターが割り当てられないのはなぜですか?

$ dd if=/dev/zero of=/dev/sda bs=512 count=1 seek=215040
io-error on writing

どうすればセクターを書き換えることができますか?

5
testo

hdparmを使用して低レベルの書き込みを試してください。

Sudo hdparm --yes-i-know-what-i-am-doing --write-sector 215040 /dev/sda

… どこ 215040は、上書き(および場合によっては再マップ)するセクター番号であり、/dev/sdaは、書き込みたいデバイスです。

hdparmのマニュアルページ から:

--write-sector

指定されたセクター番号にゼロを書き込みます。とても危ない。このフラグの後にセクター番号(base10)を指定する必要があります。 hdparmは、指定されたセクターに低レベルの書き込み(通常のブロックレイヤーの読み取り/書き込みメカニズムを完全にバイパスする)を発行します。これを使用して、ドライブに不良セクタを強制的に修復させることができます(メディアエラー)。

7
Deltik