ブートセクタと複数のドライブはどのように機能しますか?


17

ブートセクターの概念を完全には理解していません。誰かがこれを解決してくれることを望んでいました。

2つのハードドライブがあり、それぞれにOSがインストールされている場合、各ドライブには独自のブートセクターがありますか?各ドライブにはMBRパーティションが必要ですか?

LinuxとWindowsは2つの別々のドライブにあります。Linuxとgrubをインストールするときに問題が発生しましたが、ついにWindowsブートローダーを使用して起動することにしました。/ fixmbrを使用したときにWindowsがgrubを削除したのでしょうか、それとも他のドライブのブートセクターに残っていますか?

回答:


17

ウィルの答えは漠然と正しいですが、技術的には正確ではありません。はい、ドライブにはMBRは必要ありません。これがないと、そのドライブから起動できなくなり、そのドライブにパーティションを作成できなくなります。だが...

マスターブートレコードという用語は、多くの場合、2つのことを指すために使用されます。これは、最初のものだけが適切であり、一般的に2番目のものに誤って適用されます。

  1. 場所、具体的には、パーティションデータストレージデバイスの最初の512バイトセクター(「LBAセクター0」)。この場所には、ブートローダーコードの最初の440バイト(最初の段階のブートローダー)とプライマリパーティションテーブルが保持されます。典型的なMBRの構造の詳細については、WikipediaのMBRの記事を参照してください。

  2. その場所に保存されているブートローダーコード。BIOSシステムでは、これはBIOSがドライブから起動するときに実行される最初のコードです。MBRとシステムブートストラップおよび第1ステージブートローダーを参照してください。i386システムでは、このコードはアクティブパーティションのボリュームブートレコードに格納されている第2ステージブートローダーをチェーンロードし、オペレーティングシステムの実際のブートを行います。

ボリュームブートレコードまたはパーティションのブートセクタは、パーティションの最初のセクタであり、そのパーティションにインストールされたオペレーティングシステムは、その主ブートストラップコードを格納する場所です。VBRは、パーティション化されていないデータストレージデバイス(フロッピーディスク、USBフラッシュドライブ、またはパーティション化されていない役割で使用されるハードドライブ)でも使用されます。

複数ブートシステムはブートマネージャー(Grubなど)を使用します。ブートマネージャーは、独自のブートローダーコードをMBRに配置し、ユーザーがブートするOSを選択できるメニューを提供します。(技術的には、ユーザーは使用する第2ステージブートローダーを選択しています。)


したがって、質問に直接答えるには:

  • それぞれにOSがインストールされた2つのハードドライブには、それぞれ独自のMBRがあります。

    • 両方のMBRには少なくとも1つのパーティションが含まれます。
    • これらのハードドライブの各パーティションには、独自のVBRがあります。オペレーティングシステムのインストールを含むパーティションは、それらのVBRに第2段階のブートローダーを格納します。データのみのパーティションには、(おそらく)VBRに有効なブートコードがありません。
    • このシステムが起動すると、これらのMBRの少なくとも1つに有効な第1ステージブートローダーが含まれますが、BIOSが起動を試みるドライブにのみ必要です。

  • Linuxを2番目のドライブにインストールすると、おそらく Grubの最初の段階のブートローダーがWindowsドライブのMBRに書き込まれます。また、第1ステージのブートローダーを独自のドライブのMBRに書き込んだ可能性ありますが、BIOSがLinuxドライブからの起動を試みない場合は、気付かないでしょう。同様に、/ fixmbrを使用すると、WindowsはシステムドライブのMBRの最初の段階のブートローダーを書き換えます。

    • Win-7のBootrec.exeユーティリティが他のドライブのMBRにも書き込むかどうかは正直わかりません。おそらくそうする機能を備えていますが、おそらくデフォルトのアクションではありません。
    • また、Ubuntu 9.04のインストーラーがデフォルトで両方のドライブのMBRにGrubをインストールするかどうかもわかりません。必要に応じて手作業で行うこともできます。状況によっては良いことです。Windowsドライブを切断してLinuxドライブから起動しようとしても、Grubの第1段階のブートコードが存在しないと起動しません。

非常に詳細な回答をありがとう:-)...私はいつも、MBRが2つの異なる意味で使用されている理由を不思議に思っていました。そして今、私は

1
@GiHどういたしまして。この質問をしてくれてありがとう。将来の読者のために、MBRとブートローダーの基本的な紹介として使用できます。
いんちきキホーテ

「マスターブートレコードという用語は、2つのことを指すためによく使用されます。最初のレコードのみが適切であり、一般的に2番目のレコードに誤って適用されます」という情報源はありますか?どこかに..しかし、そのソースがある場合は興味深い。また、ここにブートローダーの用語があるので、MBRの非ブートローダー部分の用語はありますか?また、GPTに関しては、GPTにはブートローダーとパーティションテーブルが含まれていますか?また、GPTとパーティションテーブルを区別する用語は何ですか?
barlop

3

ドライブにはMBRは必要ありませんが、MBRがないと、そのドライブから起動できなくなります。

まず、マシンはBIOSに指示されたディスクから起動します。これは、MBR を必要とする唯一のディスクです(これはBIOSベースのマシン上にあり、たとえばEFIではなく、市場に出回っているほとんどのものです)。

MBRを使用すると、基本的にドライブが起動可能であること(そして、恐ろしい「ディスクまたはディスクエラーなし」または同様のメッセージを返さないこと)がマシンに通知され、ブートローダーがロードされます。

ブートローダーがロードされると、基本的に指示どおりに動作します。これは、他のブートローダー(たとえば、WindowsブートローダーをロードするGrub)またはオペレーティングシステムをロードすることです-たとえば、ドライブ/パーティションを選択できます。

そのため、実際のブートドライブにはMBR(およびブートローダー)のみが必要です。


わかりましたが、以前にgrubを使っていたので、両方のドライブにMBRがある可能性はありますか?基本的に私が理解しようとしているのは、grubを使用していないためにLinuxドライブがMBRのスペースを無駄にしているのか、WindowsブートローダーをインストールしたときにgrubとMBRを削除したのですか?私の質問が
わかり

1
ファイルではなく場所であるため、MBRを1つだけ持つことができます-別のドライブに別のOSをインストールした場合、別のドライブにまだある可能性がありますが、非常に小さいため、私は本当に心配しません(数百バイトについて話している(最大500程度だと思います)、もしそうなら、数十億バイトのドライブで!)。ただし、grubファイルが残っている可能性がありますが、非常に小さいです。
ウィリアムヒルサム

3
@ GiH、re:無駄なスペース-いいえ、MBR はドライブのパーティションテーブルも提供するため、有効なブートレコードが含まれているかどうかにかかわらず、スペースは予約されます(OSによって使用されません)。これは、ファイルシステムのわずかなオーバーヘッドと考えることができます。現代のハードドライブの容量と比較して、「無駄な」スペースの量は少なすぎて心配することはできません。
いんちきのキホーテ

1

MBR(マスターブートレコード)は、書き込み可能な最初のセクターです。固定された場所とサイズ(非常に小さい)があるため、ディスクごとにMBRを1つだけ保持できます。

MBRは、BIOSがロードされた後にブートシーケンスで読み取られる最初のセクターです。ロードするシステムを選択するために、1つのオペレーティングシステムをブートしたり、grubやliloなどのブートローダーをロードしたりするために使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.