ここではおそらくばかげた質問ですが、これまで私が想定していたハードドライブの動作についての詳細を確認したいと思います。
440バイトのブートローダーが起動不可能なデータドライブ(つまり、オペレーティングシステムがインストールされていないドライブ)に存在しないことは理解していますが、通常はブートローダーに加えてブートローダーが含まれているブートセクターはどうですか? MBR/GPTパーティションテーブル自体?
純粋にデータドライブとして使用されているドライブにはブートセクターが必要であり、CMD fixmbr
コマンドを実行すると、理論的にはデータドライブの損傷したブートセクターを修正できますか?
440バイトのブートローダーが起動不可能なデータドライブ(つまり、オペレーティングシステムがインストールされていないドライブ)に存在しないことは理解していますが、通常はブートローダーに加えてブートローダーが含まれているブートセクターはどうですか? MBR/GPTパーティションテーブル自体?
同じことです。すべてのディスクのセクター0には、440バイトのブートコードと72バイトのパーティションテーブル情報が含まれています。そのため、パーティションテーブルの形式は「マスターブートレコード」と呼ばれます。
(同じことがGPTディスクにも当てはまります。GPTパーティションテーブルはセクター1から始まりますが、すべてのディスクにはセクター0にいわゆる「保護」MBRがあり、実際のパーティションはありませんが、BIOSブートコードが含まれている可能性があります。)
もちろん、データディスクのMBRブートコード領域は何にも使用されていないため、工場出荷時のように空白になる可能性があります。また、「アクティブな」パーティションを検索する通常のブートコードがあるか、15年前にインストールされた可能性のあるOSからの残りが残っている可能性があります。
したがって、その領域は未使用であっても常に存在しますが、その内容を強制するものは何もありません。
partitionブートレコード(一般にVBRと呼ばれる)は、ディスク全体のブートセクターとは異なることに注意してください。通常、440バイトのディスクブートセクターは、起動可能なパーティションを見つける方法しか知らず、そのパーティションの起動レコードは、特定のOSを起動する方法を知っています。 (例外があります。たとえば、GRUBは、パーティションのブートレコード以外の場所にコードを格納しますが、一般的な考え方は同じです。)
fixmbr
コマンドは、ディスクのMBRのみを更新し、パーティションのブート情報には影響しません。Windowsの場合、代わりにfixboot
によって実行されます。
通常、ファイルシステムは常にブートローダー用にある程度のスペースを予約します(実際のサイズはファイルシステムの種類によって異なります)。パーティションにOSがインストールされていない場合、通常、そのブートレコードは空白になるか、「ブート可能ディスクではありません」などのダミーコードが含まれている可能性があります。
はい、どのパーティションにもブートセクタが含まれています。これは、ブートプロセスの順序によって定義されます。このプロセス中に、パーティションの最初のセクターでブートセクターの署名がチェックされます(最後の2バイトで55 AA-パーティションがない場合はフォーマットされていないと見なされます)。が見つかると、セクターがメモリーにロードされ、コードの実行がそれにジャンプします。つまり、有効なブートセクターには、ブートローダーコードまたは「farreturn」コマンドのいずれかが含まれている必要があります(そうでない場合、ブートプロセスはハングします)。パーティションが起動可能かどうかは関係ありません。