web-dev-qa-db-ja.com

起動できないデータドライブにはブートセクタがありますか?

ここではおそらくばかげた質問ですが、これまで私が想定していたハードドライブの動作についての詳細を確認したいと思います。

440バイトのブートローダーが起動不可能なデータドライブ(つまり、オペレーティングシステムがインストールされていないドライブ)に存在しないことは理解していますが、通常はブートローダーに加えてブートローダーが含まれているブートセクターはどうですか? MBR/GPTパーティションテーブル自体?

純粋にデータドライブとして使用されているドライブにはブートセクターが必要であり、CMD fixmbrコマンドを実行すると、理論的にはデータドライブの損傷したブートセクターを修正できますか?

2
Prometheus

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がインストールされていない場合、通常、そのブートレコードは空白になるか、「ブート可能ディスクではありません」などのダミーコードが含まれている可能性があります。

3
user1686

はい、どのパーティションにもブートセクタが含まれています。これは、ブートプロセスの順序によって定義されます。このプロセス中に、パーティションの最初のセクターでブートセクターの署名がチェックされます(最後の2バイトで55 AA-パーティションがない場合はフォーマットされていないと見なされます)。が見つかると、セクターがメモリーにロードされ、コードの実行がそれにジャンプします。つまり、有効なブートセクターには、ブートローダーコードまたは「farreturn」コマンドのいずれかが含まれている必要があります(そうでない場合、ブートプロセスはハングします)。パーティションが起動可能かどうかは関係ありません。

3
Akina