修正する

修正する

残念ながら、時にはハードドライブのデータセクタが破損する可能性があり、その場合、そのセクタ(512または4096バイト)に書き込まれたデータを確実に読み取ることができないことがあります。

一般的に、不良セクタについて知らせるメッセージを受け取り、「まあ、データはとにかくそれほど重要ではありません」と自らに言いながら、すべてが大丈夫です。

しかし、私が本当にデータを望んで読み取れないセクタが破損しすぎてデータが利用できないほど破損していないと仮定すると、どのようにしてデータを取得できますか(破損した場合でも)?

私の考えは、ハードドライブに次のコマンドを発行できるツールhdparmかもsmartcltしれません。 「エラーチェックの成功に関わらず、該当セクターの内容を教えてください!」

その順序は何ですか?

修正する

これだけ調べてman hdparm言いました。

--read-sectorは
指定されたセクタ番号から読み取り、16進数の内容を標準出力にダンプします。このオプションの後にはセクタ番号(デフォルト10)を付ける必要があります。 hdparmは、指定されたセクタに対して低レベルの読み取りを実行します(通常のブロックレベルの読み取り/書き込みメカニズムを完全にバイパス)。これは、特定のセクタが破損しているか(メディアエラー)明示的にチェックするために使用できます(通常のメカニズムを介してこれを行うと、誤った肯定が発生することがあります)。

これが実際にハードドライブにデータを提供するように指示するバージョンであるかどうかはわかりません。

この質問に対する可能な答えは、対応するプロトコル(たとえば、(S / P)ATA、SCSIなど)が強制コマンドも許可しないことです。

修正する

あると思います。 4096バイトのHDDでは、より大きなセクタがいくつかの損傷を受けているため、完全に役に立たないようにしないいくつかのユースケースがあります。たとえば、保存されたデータが破損防止機能で圧縮されている場合(たとえば、一部のECCがデータに混在している場合など)、まだ「修正可能」なので、不正確または破損したデータ(ハードドライブファームウェアから)を返すことをお勧めします。または私のために。

ユーザーが必要に応じてデータを返さないことを決定するよりも、ハードドライブが優れている必要があると思います。。 (損傷を表示し、通常の読み取りを防ぐのは大丈夫ですが、読み取りを無効にするには制限があります)

まあ、多分方法があるかもしれませんね!

ベストアンサー1

おすすめ記事