私はブートセクターの概念を完全には理解していません。誰かが私にこれを解決してくれることを望んでいました。
それぞれにOSがインストールされた2つのハードドライブがある場合、各ドライブには独自のブートセクターがありますか?各ドライブにはMBRパーティションが必要ですか?
LinuxとWindowsを2つの別々のドライブにインストールしています。 Linuxとgrubをインストールするときに問題がありましたが、ようやくWindowsブートローダーを使用して起動することにしました。/fixmbrを使用したときにWindowsはgrubを削除しましたか、それとも他のドライブのブートセクターに残りますか?
ウィルの答えは漠然と正しいですが、技術的に正確ではありません。はい、ドライブにMBRは必要ありません。これがないと、そのドライブから起動できなくなり、そのドライブにパーティションを作成できなくなります。だが...
マスターブートレコード という用語は、2つのことを指すためによく使用されます。これは、適切には最初のものだけであり、通常は2番目のものに誤って適用されます。
場所、具体的にはパーティション化されたデータストレージデバイスの最初の512バイトセクター( "LBAセクター0")。この場所には、ブートローダーコードの最初の440バイト(第1ステージのブートローダー)とプライマリパーティションテーブルが保持されます。典型的なMBRの構造の詳細については、Wikipediaの MBR記事 を参照してください。
その場所に保存されているブートローダーコード。 BIOSシステムでは、これはBIOSがドライブから起動するときに実行される最初のコードです。 MBRおよびシステムブートストラップ および 第1段階のブートローダー を参照してください。i386システムでは、このコードは 第2段階のブートローダー をチェーンロードします。 アクティブパーティションのボリュームブートレコード。オペレーティングシステムの実際のブートを行います。
ボリュームブートレコード またはパーティションブートセクターは、パーティションの最初のセクターであり、オペレーティングシステムがそのパーティションにインストールされている場所です。メインのブートストラップコードを格納します。 VBRは、パーティション化されていないデータストレージデバイス(フロッピーディスク、USBフラッシュドライブ、またはパーティション化されていない役割で使用されるハードドライブ)でも使用されます。
マルチブートシステムは ブートマネージャー (例:Grub)を使用します。ブートマネージャーは、独自のブートローダーコードをMBRに配置し、ユーザーが起動するOSを選択できるメニューを提供します。 (技術用語では、ユーザーは使用する第2ステージのブートローダーを選択しています。)
だから、あなたの質問に直接答えるには:
それぞれにOSがインストールされている2台のハードドライブには、それぞれ独自のMBRがあります。
Linuxを2番目のドライブにインストールすると、おそらくおそらくがGrubの第1段階のブートローダーをWindowsドライブのMBRに書き込みました。それはかもしれない最初の段階のブートローダーをMBRにまた書きました独自のドライブですが、BIOSがLinuxドライブからの起動を試みない場合は、気付くことはありません。同様に、/ fixmbrを使用すると、WindowsはシステムドライブのMBRにある第1段階のブートローダーを書き換えます。
ドライブにはMBRは必要ありませんが、MBRがないと、そのドライブから起動できません。
手始めに、マシンはBIOSが指示されたディスクから起動します。それは必要 a MBRである唯一のディスクです(これはBIOSベースのマシン上にあり、たとえばEFIではなく、市場に出回っているほとんどのマシン上にあります)。
MBRがあると、基本的にドライブが起動可能であることがマシンに通知され(そして、恐ろしい「ディスクまたはディスクエラーがありません」などのメッセージは返されません)、ブートローダーがロードされます。
ブートローダーが読み込まれると、基本的には指示されたとおりに実行されます。これにより、他のブートローダー(たとえば、GrubがWindowsブートローダーを読み込む)またはオペレーティングシステムを読み込むことができます-たとえば、ドライブ/パーティションを選択できます。
したがって、実際のブートドライブにMBR(およびブートローダー)があれば十分です。
MBR(マスターブートレコード)は、書き込みが可能な最初のセクターです。場所とサイズが固定されているため(非常に小さい)、ディスクごとに1つのMBRしか使用できません。
MBRは、BIOSがロードされた後にブートシーケンスで読み取られる最初のセクターです。これを使用して、1つのオペレーティングシステムを起動したり、ロードするシステムを選択するためにgrubやliloなどのブートローダーをロードしたりできます。