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メニューとコマンド環境を表示します。 このインターフェイスを通してブートするオペレーティングシステム又は、 Linuxカーネルを選択でき、カーネルに引数を渡し、又は 使用可能なRAMなどの システムパラメーターを確認したりすることが出来ます。
セカンダリブートローダーはオペレーティングシステム又はカーネルと initrdをメモリに読み込みます。 GRUBが 起動するオペレーティングシステムを決定するとそれをメモリにロードし その後はマシンの制御をオペレーティングシステムに渡します。
Red Hat Linuxの起動に使用される起動方法は、ブートローダーがオペレーティングシステムを 直接ロードすることからダイレクトロードと呼ばれます。 ブートローダーとカーネルの間には仲介はありません。
他のオペレーティングシステムによって使用されるブートプロセスは 違うことがあります。例えば、MicrosoftのDOS と Windowsオペレーティングシステムや 別の商用オペレーティングシステムはチェーンロード起動法を 使用します。この方法では、MBRはオペレーティングシステムを保持している パーティションの第一セクターを指定するだけです。そこでオペレーティングシステムを 実際にブートするのに必要なファイルを見付けます。
GRUBはダイレクトロードとチェーンロードの両方の方法をサポートし、 ほとんどどんなオペレーティングシステムでもブートできます。
警告 | |
---|---|
インストールの間、Microsoftの DOS と Windowsインストールプログラムは完全に MBRを上書きし、既存のブートローダーを抹消します。デュアルブートシステムを 構築している場合は、Microsoftのオペレーティングシステムを最初に インストールするのが適切です。その操作法に関しては Red Hat Linux インストールガイド内の デュアルブート環境でのRed Hat Linuxのインストールと題してある 付録を参照して下さい。 |
GRUBには x86アーキテクチャで利用可能で、他のブートローダーと比較しても より好ましい機能を数多く含んでいます。以下に重要な機能の1部を 一覧で示します:
GRUBはx86マシン上で、真のコマンドベースのプレ-OS環境を提供します。 このためユーザーは特定のオプションを持ち、システムの情報収集が できるこのオペレーティングシステムのロードに最大の柔軟性を 得ることになります。長年、多くの非-x86アーキテクチャは コマンドラインからブートできるプレ-OS環境を起用してきました。 幾つかのコマンド機能はLILOや他のx86ブートローダーにも利用 できますがGRUBはより豊富な機能を搭載しています。
GRUBは、Logical Block Addressing (LBA)モードをサポートします。 LBAはハードドライブのファームウェア内のファイルを探す為に 使用されるアドレス変換の位置設定をするもので、多くのIDEと 全てのSCSIハードドライブで使用されます。LBAの前まではブートローダーは、 BIOSがディスク内のそのシリンダーヘッド以降はファイルを探せないと 言う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で御覧下さい。 |