GNU GRand Unified Boot loader(GRUB)は、ユーザーにシステム起動の 時点にロードするインストール済のオペレーティングシステム又はカーネルを選択させてくれる プログラムです。またカーネルに対して引数を渡すこともできるようにします。
このセクションでは、x86システムをブートする時にGRUBが果たす特別な役割について説明します。全体的なブートプロセスについては 項1.2を参照して下さい。
GRUB は次のようなステージでそれ自身をメモリにロードします:
ステージ1と呼ばれるプライマリブートローダーがBIOSによって MBRからメモリへ読み込まれます。[1]. プライマリブートローダーはMBR内の512バイト以下のディスク領域に存在し、 ステージ1.5又はステージ2 のブートローダーを ロードすることができます。
ステージ 1.5 ブートローダーは必要であれば、ステージ1ブートローダーに よってメモリに読み込まれます。 ハードウェアの中には ステージ2 ブートローダーに達するために中間ステップを必要とするものがあります。 これには、/bootパーティションがハードドライブの 1024シリンダーヘッド以上にある場合やLBAモードを使用している場合が該当します。 ステージ1.5ブートローダーは、 /bootパーティションかMBRの一部分に存在し、 /bootパーティションにも存在します。
ステージ2と呼ばれるセカンダリブートローダーがメモリに読み込まれます。 セカンダリブートローダーはGRUBメニューとコマンド環境を表示します。 このインターフェイスを通してブートするカーネルやオペレーティングシステム を選択することができ、カーネルに引数を渡したり システムパラメーターを確認したりすることができます。
セカンダリブートローダーはオペレーティングシステム又はカーネルと initrdをメモリに読み込みます。 GRUBが 起動するオペレーティングシステムを決定するとそれをメモリにロードし その後はマシンの制御をオペレーティングシステムに渡します。
Red Hat Enterprise Linuxの起動に使用される起動方法は、ブートローダーがオペレーティングシステムを直接ロードすることから ダイレクトロードと呼ばれます。 ブートローダーとカーネルを仲介するものはありません。
他のオペレーティングシステムによって使用されるブートプロセスは異なる場合があります。例えば、 Microsoft ® Windows®オペレーティングシステムや 別のオペレーティングシステムはチェーンロード使用して ロードされます。 この方法では、 MBRによってオペレーティングシステムを保持している パーティションの第一セクター が指定され、 実際ブートするのに必要なファイルは オペレーションシステムによって検索されます。
GRUBはダイレクトロードとチェーンロードの両方をサポートするため、 たいがいのオペレーティングシステムをブートすることができます。
![]() | 警告 |
---|---|
インストールの間、Microsoftの DOS と Windowsインストールプログラムは完全に MBRを上書きし、既存のブートローダーを抹消します。デュアルブートシステムを 構築している場合は、Microsoftのオペレーティングシステムを最初に インストールするとよいでしょう。 |
GRUBには x86アーキテクチャに対応する他のブートローダーに勝るような機能を数多く含んでいます。重要な機能の一部は次の通りです。
GRUBはx86マシン上で、真のコマンドベースのプレ-OS環境を提供します。 そのため、 特定のオプションによるオペレーションシステムのロードや システム情報の収集に関し、ユーザーに最大限の柔軟性を提供します。 長年、多くの非-x86アーキテクチャには コマンド行からブートするプレ-OS環境が起用されてきました。LILOや他のx86ブートローダーによって使用できる コマンド機能もいくつかありますが、GRUBはより豊富な機能を搭載しています。
GRUBは、Logical Block Addressing (LBA)モードをサポートします。 LBAはハードドライブのファームウェア内のファイル検索に使用されるアドレス変換の場所設定をするもので、IDEの多くと 全てのSCSIハードデバイスで使用されます。 LBAが実用化する以前では BIOSがディスク内の1024シリンダーヘッド以降のファイル検索が不可能になる BIOSの1024シリンダー限界の問題にブートローダーが遭遇する可能性がありました。 LBAサポートによって、システムBIOSがLBAモードに対応している限り、 GRUBは1024シリンダー限界を越えたパーティションからオペレーティング システムをブートすることができます。現在のBIOS改定ほとんどがLBAモードに対応しています。
GRUB はext2のパーティションも読み込みます。 この機能により、GRUBは設定ファイル/boot/grub/grub.confにアクセスすることでき、設定変更がされた時でもシステムがブートする度にMBRにステージ 1 ブートローダーの新しいバージョンを書く必要がなくなります。ユーザーがMBR上のGRUBを 再インストールする必要が出る唯一の状況は、ディスク上の/boot パーティションの物理的な場所が移動された時です。 MBRへのGRUBインストールについては 項2.3を参照して下さい。
[1] | システムBIOSとMBRに付いての詳しい情報は 項1.2.1をご覧ください。 |