2.2. GRUB

GNU GRand Unified Boot loader(GRUB)は、ユーザーにシステム起動の 時点にロードするインストール済のオペレーティングシステム又はカーネルを選択させてくれる プログラムです。またカーネルに対して引数を渡すこともできるようにします。

2.2.1. GRUB と x86ブートプロセス

このセクションでは、x86システムをブートする時にGRUBが果たす特別な役割について説明します。全体的なブートプロセスについては 項1.2を参照して下さい。

GRUB は次のようなステージでそれ自身をメモリにロードします:

  1. ステージ1と呼ばれるプライマリブートローダーがBIOSによって MBRからメモリへ読み込まれます。[1]. プライマリブートローダーはMBR内の512バイト以下のディスク領域に存在し、 ステージ1.5又はステージ2 のブートローダーを ロードすることができます。

  2. ステージ 1.5 ブートローダーは必要であれば、ステージ1ブートローダーに よってメモリに読み込まれます。 ハードウェアの中には ステージ2 ブートローダーに達するために中間ステップを必要とするものがあります。 これには、/bootパーティションがハードドライブの 1024シリンダーヘッド以上にある場合やLBAモードを使用している場合が該当します。 ステージ1.5ブートローダーは、 /bootパーティションかMBRの一部分に存在し、 /bootパーティションにも存在します。

  3. ステージ2と呼ばれるセカンダリブートローダーがメモリに読み込まれます。 セカンダリブートローダーはGRUBメニューとコマンド環境を表示します。 このインターフェイスを通してブートするカーネルやオペレーティングシステム を選択することができ、カーネルに引数を渡したり システムパラメーターを確認したりすることができます。

  4. セカンダリブートローダーはオペレーティングシステム又はカーネルと initrdをメモリに読み込みます。 GRUBが 起動するオペレーティングシステムを決定するとそれをメモリにロードし その後はマシンの制御をオペレーティングシステムに渡します。

Red Hat Enterprise Linuxの起動に使用される起動方法は、ブートローダーがオペレーティングシステムを直接ロードすることから ダイレクトロードと呼ばれます。 ブートローダーとカーネルを仲介するものはありません。

他のオペレーティングシステムによって使用されるブートプロセスは異なる場合があります。例えば、 Microsoft ® Windows®オペレーティングシステムや 別のオペレーティングシステムはチェーンロード使用して ロードされます。 この方法では、 MBRによってオペレーティングシステムを保持している パーティションの第一セクター が指定され、 実際ブートするのに必要なファイルは オペレーションシステムによって検索されます。

GRUBはダイレクトロードとチェーンロードの両方をサポートするため、 たいがいのオペレーティングシステムをブートすることができます。

警告警告
 

インストールの間、Microsoftの DOS と Windowsインストールプログラムは完全に MBRを上書きし、既存のブートローダーを抹消します。デュアルブートシステムを 構築している場合は、Microsoftのオペレーティングシステムを最初に インストールするとよいでしょう。

2.2.2. GRUBの機能

GRUBには x86アーキテクチャに対応する他のブートローダーに勝るような機能を数多く含んでいます。重要な機能の一部は次の通りです。

注意

[1]

システムBIOSとMBRに付いての詳しい情報は 項1.2.1をご覧ください。