web-dev-qa-db-ja.com

フルフォーマット、HDDコントローラー、および不良セクターのロック

ハードディスクドライブの不良セクタを手動でロックして再割り当てすることについて、定期的に質問があります。これの1つの側面、ハードドライブコントローラーと完全なフォーマットに関して明らかに矛盾する情報があるようです。

ハードドライブコントローラー

ハードドライブコントローラは、不良セクタの自動認識を実行し、それらをロック(マーク)して、コンテンツを自動的に再割り当てします。これはSMART情報で報告されます。私の理解では、これは「ランダム」プロセスです。つまり、ドライブの使用中にコントローラーが不良セクターに遭遇したときに発生します。

フルフォーマット

この質問で受け入れられた答え Windows 7でハードディスク上の不良セクタを分離する方法は? は、フルフォーマットを説明する際にMicrosoftを引用しています。不良セクタのスキャンを含むプロセスについて説明します。Vista以降では、これは パーティション全体にゼロを書き込む によって実現されます。

含意

フルフォーマットはドライブコントローラーの自動化されたプロセスを使用し、ゼロフィルはコントローラーがすべてのセクターを検査する手段を提供することを意味しているようです。セクター検証がフォーマットユーティリティ自体によって制御される可能性がありますが、これについては説明されていません。

固有の読み取り検証なし

最近の質問 ゼロフィル、フルフォーマット、およびCHKDSKは不良セクタをどのように修正しますか? 、回答へのコメントでこれについての議論があります。 このコメント 、ユーザー おがくず 状態、

ファイルシステムのゼロフィルまたは「フォーマット」は、通常の書き込み操作を使用します。自動検証や書き込み後の読み取りはありませんが、不良セクタを検出するには読み取りが必要になります。したがって、コントローラによって維持されている不良セクタリストに変更が生じることはないと思います。

この問題を調査しようとしても、これを達成するための手段としてフルフォーマットを使用することに言及している不良セクタのクリーンアップに関する記事は見つかりませんでした。これはおがくずのコメントと一致します。

これは私にこの質問とこれらの2つの要素をもたらします:

  • フルフォーマットはどのようにして不良セクタを識別しますか?つまり、不良セクタの識別(読み取り検証)は、コントローラへの自動応答の一部として管理されます。ゼロフィル、またはフォーマットユーティリティは各セクターの読み取りを実行しますか?

  • ハードドライブコントローラーの自動プロセスがセクターをロックしてコンテンツを再割り当てするトリガーとなる条件は何ですか?つまり、書き込みに本質的に読み取り検証が含まれない場合、セクターを正しく読み取ることができないことによってのみトリガーされるアクション(少なくとも最初の試行では)?

  • そしてcorollary:フォーマットユーティリティが独自の読み取り検証を実行する場合、これはゼロフィルに反すると思います(そして外部の不良セクタリストをマークします) 、cybernardの回答で説明されているように)、その読み取りアクションは、コントローラーによる自動検証もトリガーしませんか?つまり、冗長なチェックが作成されないので、なぜ外部リストが必要になるのでしょうか。

3
fixer1234

フルフォーマットはどのようにして不良セクタを識別しますか?つまり、不良セクタの識別(読み取り検証)は、ゼロフィルへの自動応答の一部としてコントローラによって管理されていますか、それともフォーマットユーティリティは各セクタの読み取りを実行しますか?

「フルフォーマット」が「不良セクタの特定」になっていると誰が主張しますか?

いくつかのタイミングテストを実行しましたが、その結果は、Windows7形式がセクターのみを書き込むことを示しています。
オプションのWrite-Read-Verify機能セットによって実装される この特許 を組み込んだHDDを使用できます。 Write-Read-Verifyの使用は、操作ごとに必要な追加のローテーションのパフォーマンスの低下によって検出される可能性があります。

読み取り操作がないと、セクターのデータレコードのエラーは検出されません。

ハードドライブコントローラーの自動化されたプロセスがセクターをロックし、コンテンツを再割り当てするきっかけとなる条件は何ですか?つまり、書き込みが本質的に読み取り検証を伴わない場合、アクションはセクターを正しく読み取ることができないことによってのみトリガーされますか(少なくとも最初の試行では)?

「セクターをロックする」は従来の用語ではありません。
不良セクタが再マップされ、 この記事 で説明されています。
主な欠陥は製造中に再マッピングされます。
ドライブの寿命中に蓄積された欠陥は、コントローラーによって再マッピングされ、他のリストに保持されます。再マッピングの基準はベンダーによって異なる場合があり、最小値は修正不可能な(読み取り)エラーが繰り返されます。セクターの識別レコードの修正不可能なエラーは、再マッピングの直接の原因になります。

そして当然の結果:フォーマットユーティリティが独自の読み取り検証を実行する場合(サイバーナードの回答で説明されているように、ゼロフィルに反すると思います)、その読み取りアクションによって自動化された読み取りアクションもトリガーされませんコントローラによる検証?つまり、冗長なチェックが作成されないので、なぜ外部リストが必要になるのでしょうか。

繰り返しになりますが、Windows7がパーティションのフォーマット中に書き込み操作以外の操作を明示的に実行するという証拠は見つかりません。
ゼロフィルには何もユニークなものはありません。低レベルフォーマットが実行されたとき、それはたまたまデフォルトのデータです。 ECCは、複数ビットのエラーバーストを検出(および修正)することができます。

あなたが冗長だと思うのは状況によるものです。
古いディスクコントローラーには、不良ブロックのメンテナンスを実行するための処理能力と内部ストレージが不足していました。
不良ブロックを管理するために、ホストコンピューター上のOS /ファイルシステムソフトウェアに任されていました。

ゾーンビット記録の出現により、formatコマンドはATA4コマンドセットから削除されました。このフォーマットコマンドを削除するには、HDDコントローラーが不良ブロックのメンテナンスの一部を引き受ける必要がありました。
実際には、これはHDDメーカーにとっての勝利でした。主要な欠陥リストが非表示になり、より多くの欠陥を受け入れることでPlatterの歩留まりを向上させることができたからです。

そのため、HDDコントローラーによる不良ブロックのメンテナンスにより、メーカーのコストを削減できます。これにより、OS /ファイルシステムの複雑さを軽減できますが、パフォーマンスに影響を与える可能性があります(つまり、追加のシーク)。
OS /ファイルシステムによる不良ブロックのメンテナンスは、通常、不良セクタの割り当てを防ぐだけです。したがって、リマップのようなパフォーマンスへの影響はありませんが、各不良セクタのアロケーションユニット(別名クラスタ)全体をアロケーションできないようにする必要があります。
OS /ファイルシステムは、ATA4以降ではない古いHDDとの下位互換性が必要なため、不良ブロックのメンテナンスを排除できません。

1
sawdust
  1. フルフォーマットは、単に不良セクタを非表示にします。ほとんどのファイルシステムには不良ブロックリストがあり、ファイルシステムに不良セクタマーカーを適切な方法で追加して、私を使用しないことを示しています。

  2. ハードドライブにはSMARTが組み込まれています。自己監視および修復ツール。各セクターにはecc(エラー訂正データ)があります。最終的に、物理ハードドライブがセクターの読み取りに十分な時間がかかる場合、不良セクターをスペアに置き換えます。スペアは通常非常に限られており、ほとんどのドライブで100〜300程度です。それらが使用されると、SMARTは、ドライブに障害が発生しようとしているという警告をスローします。このリストは、フォーマットからでも不良セクタを非表示にします。

書き込むときは、結果を確認し、新しいeccデータを書き込みます。ただし、完全な形式では、ファイルシステム構造のみがドライブ全体に書き込まれるわけではありません。ドライブ全体を読み取るだけです。

エラーは、一致しないECC、セクターの読み取りにかかる時間、およびその他の内部測定によって検出されます。フォーマットユーティリティが不良セクタをマークする必要がある理由の1つは、物理ドライブに100〜300のスペアしかないためです。もう1つの理由は、フォーマットユーティリティがSMARTと通信して、問題が存在することを通知する機能がプログラムされていないためです。

Windows 7以降のみがSMARTと通信する機能を備えており、それでも何度もその機能は使用されません。

ここでの大きな注意点の1つは、ハードドライブの製造元がSMARTを望まず、実装を余儀なくされたことです。メモリは訴訟を通じて正しく機能します。ただし、多くの場合、メーカーはその有用性を制限しています。 SMARTは、読み取り/書き込みの失敗時に一定量のセクターを再割り当てすることになっていますが、実際の経験から、しきい値がめちゃくちゃ高いか無視されていることがわかりました。

ハードドライブに不良セクタmhddとspinriteを再割り当てさせることができるプログラムはほとんどありませんが、それでも多くのセクタを再割り当てできないのを見てきました。

1
cybernard