2.2. GRUB

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

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. セカンダリブートローダーはオペレーティングシステム又はカーネルと /boot/sysroot/の内容をメモリに読み込みます。 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をご覧ください。