web-dev-qa-db-ja.com

グラブの場所-それはmbrまたは他の場所に行きましたか?

LinuxとWindows7で、ブートローダーとしてGrubを使用したデュアルブートセットアップがあります。

私のパーティションテーブルは次のようになります。

100 MB System Reserved Windows 7
500 GB Windows 7
100 MB /boot - ext2
500 GB linux, swap, etc.

このセットアップをここで行った後、GRUBが自分自身をインストールした場所に興味があります。

システム予約済みパーティションはWindows7の起動パーティションだと思いましたが、Grubがそれを書き直した場合(マスターブートレコードにあると思います)、Windows7を実行できないようです。

Grubはどこにインストールされ、それでもWindowsとLinuxの両方を指すことができますか?パーティションの設定方法によって異なりますか?

8
mouche

Windowsが自身をインストールすると、ブートローダー(NTからXPではNTLDR、その後はwinboot)がboot.iniを読み取るマスターブートレコードに配置され、ブートリストが表示されます。そのリストから何かを選択すると、ブートローダーのジョブが完了し、ドライブ上の実際のパーティションから適切なカーネルが開始されます。

Grubも同じことをします。ブートローダーはgrub.conf/menu.lstリストを表示するためだけにあり、何かを選択すると、制御を通常のパーティションに移します。したがって、grubはMBRのNTLDR/winbootを上書きしますが、通常のパーティションには何も上書きしません。また、ブートリストからWindowsを選択した場合、Windowsパーティションに制御を移す方法を知っています。

6
Michael Mrozek

Grubは、ドライブのマスターブートレコードに自分自身をインストールします。マスターブートレコードはパーティションドライブの最初のセクターであり、パーティション自体ではないことを理解することが重要です。詳細については、 Wikipedia を参照してください。

この情報が与えられると、基本的にGrubはWindows 7がインストールしたMBR情報を上書きしますが、Windows 7が作成する「システム予約済みパーティション」には影響しません(要求がない限り)。新しいMBRは、システムにGRUBをロードするように指示するだけで、GRUBは、適切なOSがロードされていることを確認します。これにより、オペレーティングシステムを簡単に切り替えることができます。

1
Scott Anderson

MBR以外の場所にGRUBをインストールするのは、Macの場合だけです。デュアルブートの質問全体がかなり複雑になります。一般的なケースでは、GRUBがMBRにインストールされ、NTLDRが上書きされ、LinuxまたはWindowsを起動できるようになります。

1
directhex

ここには紛らわしいものがいくつかあります。まず最初に、ディスクがパーティション分割されている場合(スライス=プライマリパーティション)、各スライスに「パーティションブートレコード」があることを知っておく必要があります。ディスクをフォーマットするとき、最初のセクターは「ブートセクター」と呼ばれます。ブートセクタは、起動可能としてフラグが立てられたパーティションからロードおよび実行されます。

GRUBはこの領域に512バイトしかなく、stage1と呼ばれます。ステージ1はステージ2(または1.5)をロードするだけで、これはmenu.lstファイルと他のモジュールをロードするファイルです。

Stage1.5(またはStage2)は少量のコードからmenu.lstをロードするため、そのファイルシステム固有です(FSで/boot/menu.lstを見つけることができる必要があります)。

詳細については、 here をご覧ください。

一言で言えば、Stage1はMBRにありますが、GRUBはstage1だけではなく、Stage1以外はすべて/ bootにあります。

1
D4RIO