Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

24.6. ブートローダーの確証

rpm を使用してカーネルをインストールすると、カーネルパッケージはブートローダー設定ファイル内にその新しいカーネル用のエントリーを作成します。しかし、rpm はその新しいカーネルがデフォルトカーネルとしてブートするようには設定しません。 rpm で新しいカーネルをインストールした時には手動で実行する必要があります。
rpm で新しいカーネルをインストールした後には、常にブートローダー設定ファイルをダブルチェックして設定が正しいことを確認するようにお薦めします。そうしないと、システムは Red Hat Enterprise Linux を正しくブートできないかも知れません。ブートしない場合、先に作成したブートメディアでシステムをブートしてブートローダーを再設定します。
以下の表で、使用アーキテクチャを見付けるとシステムが使用しているブートローダーを判定することができます。見付けたら、「参照 (Refer to)」リンクをクリックして使用システム用の正しい案内にジャンプします。

表24.1 アーキテクチャ別のブートローダー

アーキテクチャ ブートローダー 参照
x86 GRUB 「GRUB ブートローダーの設定」
AMD AMD64 または Intel 64 GRUB 「GRUB ブートローダーの設定」
IBM eServer System i OS/400 「OS/400 ブートローダーの設定」
IBM eServer System p YABOOT 「YABOOT ブートローダーの設定」
IBM System z z/IPL

24.6.1. GRUB ブートローダーの設定

GRUB の設定ファイルである /boot/grub/grub.conf には、defaulttimeoutsplashimagehiddenmenu、などの指示文を持ついくつかの行が含まれています (最後の指示文は引数を持ちません)。ファイルの残りの部分は4行の stanzas (スタンザ) を含んでおり、それぞれがインストール済みのカーネルを1つ参照します。これらのスタンザはいつも title エントリーで始り、その後に関連した rootkernel 及び initrd の指示文が常にインデント付きになります。各スタンザが title で始り、それが同じスタンザの kernel /vmlinuz-<version_number> 行にあるバージョン番号と一致するバージョン番号 (括弧内) を含んでいることを確認します。

例24.2 /boot/grub/grub.conf

# grub.conf generated by anaconda
[comments omitted]
default=1
timeout=0
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu

title Red Hat Enterprise Linux (2.6.32-22.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-22.el6.x86_64 ro root=/dev/mapper/vg_vm6b-lv_root rd_LVM_LV=vg_vm6b/lv_root rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet crashkernel=auto
        initrd /initramfs-2.6.32-22.el6.x86_64.img

title Red Hat Enterprise Linux (2.6.32-19.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-19.el6.x86_64 ro root=/dev/mapper/vg_vm6b-lv_root rd_LVM_LV=vg_vm6b/lv_root rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet crashkernel=auto
        initrd /initramfs-2.6.32-19.el6.x86_64.img

title Red Hat Enterprise Linux 6 (2.6.32-17.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-17.el6.x86_64 ro root=/dev/mapper/vg_vm6b-lv_root rd_LVM_LV=vg_vm6b/lv_root rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
        initrd /initramfs-2.6.32-17.el6.x86_64.img
別の /boot/ パーティションが作成されている場合、カーネルへのパスと initramfs イメージへのパスは /boot/ に対して相対的になります。これが上記の 例24.2「/boot/grub/grub.conf」 内のケースです。そのため、最初のカーネルスタンザ内の initrd /initramfs-2.6.32-22.el6.x86_64.img の行は、root ファイルがマウントされている時には initramfs イメージが実際に /boot/initramfs-2.6.32-22.el6.x86_64.img にあることを意味します。そして、grub.conf の各スタンザ内のカーネルパス (例えば: kernel /vmlinuz-2.6.32-22.el6.x86_64) にも同じことが言えます。

注記

grub.conf 内のカーネルブートスタンザでは、initrd 指示文は同じカーネルバージョンに該当する initramfs ファイルの位置 (別のパーティションの場合、/boot/ ディレクトリに対して相対的) を指している必要があります。この指示文は、初期 RAM ディスクイメージを作成したツール、mkinitrdinitrd と呼ばれるファイルを作成したために initrd と呼ばれます。そのため、grub.conf 指示文は、他のツールとの互換性を維持するために initrd であり続けます。初期 RAM ディスクイメージを作成するための dracut ユーティリティを使用したシステムのファイル名命名の慣習は: initramfs-<kernel_version>.img となります。
Dracut は Red Hat Enterprise Linux 6 内で使用できる新しいユーティリティであり、mkinitrd と比較してかなり向上しています。Dracut の使用法に関する詳細には、「初期 RAM ディスクイメージの検証」 を参照して下さい。
kernel /vmlinuz-<kernel_version> の行に提示されているカーネルバージョン番号が、各スタンザの initrd /initramfs-<kernel_version>.img 行に提示された initramfs イメージのバージョン番号に一致することを確認する必要があります。詳細には、手順24.1「初期 RAM ディスクイメージの検証」 を参照して下さい。
default= 指示文は GRUB に対してどのカーネルをデフォルトでブートすべきかを伝えます。grub.conf 内の各title はブート可能なカーネルを示します。GRUB は、0 から開始して、ブート可能なカーネルを示す title スタンザをカウントします。例24.2「/boot/grub/grub.conf」 内では、default=1 の行は GRUB がデフォルトでブートすることを表し、これは、2つめ のカーネルエントリである title Red Hat Enterprise Linux (2.6.32-19.el6.x86_64) です。
例24.2「/boot/grub/grub.conf」 内でバージョン番号で比較する場合、GRUB はより古いカーネルをブートするために設定されています。grub.conf 内の 1番めtitle エントリである、より新しいカーネルをブートするためには、default 値を0 に変更する必要があります。
rpm を使用して新しいカーネルをインストールした後には、/boot/grub/grub.conf が正しいことを確認して、default= 値を新しいカーネルに変更します (0 からカウントすることを忘れないで下さい)。そしてコンピュータをその新しいカーネルでブートします。ブートプロセス出力を見て、ハードウェアが検出されていることを確認します。
GRUB がエラーを表示してデフォルトカーネルでブートが出来ない場合、代替の、即ち古いカーネルでブートして見ることが一番簡単です。ブート後に問題の修復をします。

重要

grub.conf 内の timeout 指示文を0 にセットすると、システムの起動時に GRUB はブート可能なカーネルの一覧を表示しなくなります。起動時にこの一覧を表示するには、BIOS 情報が出現した直後にいずれかの英数文字キーを押し続けます。すると GRUB は GRUB メニューを表示します。
別の方法として、システムのブート用に以前に作成しているブートメディアを使用します。