33.2.2. ブーツローダー
このセクションでは、x86 プラットフォームのデフォルトのブートローダーである GRUB について見ていきます。システムのアーキテクチャーによって、ブートプロセスが若干異なる場合があります。非 x86 ブートローダーの概要については、「他アーキテクチャーのブートローダー」 を参照してください。GRUB の設定と使用方法の詳細については、9章GRUB ブートローダー を参照してください。
x86 プラットフォーム用のブートローダーは、少なくとも 2 つのステージに分かれています。第一段階は、MBR 上の小さなマシンコードバイナリーである。その唯一の仕事は、セカンドステージのブートローダーを探し出し、その最初の部分をメモリーにロードすることです。
GRUB は ext2 や ext3 を読み込めるという利点があります [13] パーティションを作成し、その設定ファイルである
/boot/grub/grub.conf
をブート時にロードします。このファイルの編集方法については、「GRUB メニュー設定ファイル」 を参照してください。
注記
Red Hat Update Agent を使用してカーネルをアップグレードする場合、ブートローダーの設定ファイルは自動的に更新されます。Red Hat Network の詳細については、次の URL でオンライン公開されています :https://rhn.redhat.com/。
セカンドステージのブートローダーがメモリーに入ると、ブートするように設定されたさまざまなオペレーティングシステムやカーネルを示すグラフィカルな画面がユーザーに表示されます。この画面で、ユーザーは矢印キーを使って起動する OS やカーネルを選択し、Enter キーを押すことができます。キーが押されないと、設定可能な時間が経過した後、ブートローダーはデフォルトの選択をロードします。
セカンドステージのブートローダーは、起動するカーネルを決定すると、
/boot/
ディレクトリーにある対応するカーネルバイナリーを探します。カーネルバイナリーの名前は、/boot/vmlinuz-<kernel-version>
ファイルという形式です (ここで <カーネルバージョン
はブートローダーの設定で指定されたカーネルバージョンに対応します)。
ブートローダーを使用してカーネルにコマンドライン引数を与える方法については、9章GRUB ブートローダー を参照してください。ブートローダーのプロンプトでランレベルを変更する方法については、「起動時のランレベルの変更」 を参照してください。
ブートローダーは、1 つまたは複数の適切な initramfs イメージをメモリーに配置します。次に、カーネルはこれらのイメージをメモリーから cpio を 介して RAM ベースの仮想ファイルシステムである
/sysroot/
にデプロイメントする。initramfs は
、カーネルがシステムを起動するために必要なドライバーやモジュールをロードするために使用されます。これは、SCSI ハードディスクがある場合、またはシステムが ext3 ファイルシステムを使用する場合に特に重要です。
カーネルと
initramfs
イメージがメモリーにロードされると、ブートローダーはブートプロセスの制御をカーネルに渡します。
GRUB ブートローダーの詳細な概要については、9章GRUB ブートローダー を参照してください。
33.2.2.1. 他アーキテクチャーのブートローダー
カーネルがロードされ、ブートプロセスが init コマンドに引き渡されると、どのアーキテクチャーでも同じ一連のイベントが発生します。つまり、各アーキテクチャーのブートプロセスの主な違いは、カーネルを検索してロードするために使用するアプリケーションにあるのです。
例えば、Itanium アーキテクチャーは ELILO ブートローダーを、IBM eServer pSeries アーキテクチャーは yaboot を、IBM System z システムは z/IPL ブートローダーを使用します。
[13]
GRUB は ext3 ファイルシステムを ext2 として読み込み、ジャーナルファイルを無視します。ext3 ファイルシステムの詳細については、Red Hat Enterprise Linux Deployment Guide の 『The ext3 File System』 という章を参照してください。