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メニューとコマンド環境を表示します。 このインターフェイスを通してブートするオペレーティングシステム又は、 Linuxカーネルを選択でき、カーネルに引数を渡し、又は 使用可能なRAMなどの システムパラメーターを確認したりすることが出来ます。

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

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

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

GRUBはダイレクトロードとチェーンロードの両方の方法をサポートし、 ほとんどどんなオペレーティングシステムでもブートできます。

警告警告
 

インストールの間、Microsoftの DOS と Windowsインストールプログラムは完全に MBRを上書きし、既存のブートローダーを抹消します。デュアルブートシステムを 構築している場合は、Microsoftのオペレーティングシステムを最初に インストールするのが適切です。その操作法に関しては Red Hat Linux インストールガイド内の デュアルブート環境でのRed Hat Linuxのインストールと題してある 付録を参照して下さい。

2.2.2. GRUBの機能

GRUBには x86アーキテクチャで利用可能で、他のブートローダーと比較しても より好ましい機能を数多く含んでいます。以下に重要な機能の1部を 一覧で示します:

注意

[1]

システムBIOSとMBRに付いての詳しい情報は 項1.2.1で御覧下さい。