39.6. Verifying the Boot Loader

The kernel RPM package configures the boot loader to boot the newly installed kernel (except for IBM eServer iSeries systems). However, it does not configure the boot loader to boot the new kernel by default.

It is always a good idea to confirm that the boot loader has been configured correctly. This is a crucial step. If the boot loader is configured incorrectly, the system will not boot into Red Hat Enterprise Linux properly. If this happens, boot the system with the boot diskette created earlier and try configuring the boot loader again.

39.6.1. x86 Systems

x86 systems have the option of using GRUB or LILO as the boot loader with one exception — AMD64 and Intel® EM64T systems do not have the option of using LILO. For all x86 systems, GRUB is the default.

39.6.1.1. GRUB

If GRUB is used as the boot loader, confirm that the file /boot/grub/grub.conf contains a title section with the same version as the kernel package just installed (if the kernel-smp or kernel-hugemem package was installed as well, a section will exist for it as well):

# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/hda2
#          initrd /initrd-version.img
#boot=/dev/hda
default=1
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Enterprise Linux (2.4.21-1.1931.2.399.ent)
        root (hd0,0)
        kernel /vmlinuz-2.4.21-1.1931.2.399.ent ro root=LABEL=/
        initrd /initrd-2.4.21-1.1931.2.399.ent.img
title Red Hat Enterprise Linux (2.4.20-2.30.ent)
        root (hd0,0)
        kernel /vmlinuz-2.4.20-2.30.ent ro root=LABEL=/
        initrd /initrd-2.4.20-2.30.ent.img

If a separate /boot/ partition was created, the paths to the kernel and initrd image are relative to /boot/.

Notice that the default is not set to the new kernel. To configure GRUB to boot the new kernel by default, change the value of the default variable to the title section number for the title section that contains the new kernel. The count starts with 0. For example, if the new kernel is the first title section, set default to 0.

Begin testing the new kernel by rebooting the computer and watching the messages to ensure that the hardware is detected properly.

39.6.1.2. LILO

If LILO is used as the boot loader, confirm that the file /etc/lilo.conf contains an image section with the same version as the kernel package just installed (if the kernel-smp or kernel-hugemem package was installed, a section will exist for it as well):

Notice that the default is not set to the new kernel. To configure LILO to boot the new kernel by default, set the default variable to the value of the label in the image section for the new kernel. Run the /sbin/lilo command as root to enable the changes. After running it, the output will be similar to the following:

Added 2.4.21-1.1931.2.399.ent *
Added linux

The * after 2.4.21-1.1931.2.399.ent means the kernel in that section is the default kernel that LILO will boot.

Begin testing the new kernel by rebooting the computer and watching the messages to ensure the hardware is detected properly.

39.6.2. Itanium Systems

Itanium systems use ELILO as the boot loader, which uses /boot/efi/EFI/redhat/elilo.conf as the configuration file. Confirm that this file contains an image section with the same version as the kernel package just installed:

prompt
timeout=50
default=old

image=vmlinuz-2.4.21-1.1931.2.399.ent
        label=linux
        initrd=initrd-2.4.21-1.1931.2.399.ent.img
        read-only
        append="root=LABEL=/"
image=vmlinuz-2.4.20-2.30.ent
        label=old
        initrd=initrd-2.4.20-2.30.ent.img
        read-only
        append="root=LABEL=/"

Notice that the default is not set to the new kernel. To configure ELILO to boot the new kernel, change the value of the default variable to the value of the label for the image section that contains the new kernel.

Begin testing the new kernel by rebooting the computer and watching the messages to ensure that the hardware is detected properly.

39.6.3. IBM S/390 and IBM eServer zSeries Systems

The IBM S/390 and IBM eServer zSeries systems use z/IPL as the boot loader, which uses /etc/zipl.conf as the configuration file. Confirm that the file contains a section with the same version as the kernel package just installed:

[defaultboot]
default=old
target=/boot/
[linux]
        image=/boot/vmlinuz-2.4.21-1.1931.2.399.ent
        ramdisk=/boot/initrd-2.4.21-1.1931.2.399.ent.img
        parameters="root=LABEL=/"
[old]
        image=/boot/vmlinuz-2.4.20-2.30.ent
        ramdisk=/boot/initrd-2.4.20-2.30.ent.img
        parameters="root=LABEL=/"

Notice that the default is not set to the new kernel. To configure z/IPL to boot the new kernel by default change the value of the default variable to the name of the section that contains the new kernel. The first line of each section contains the name in brackets.

After modifying the configuration file, run the following command as root to enable the changes:

/sbin/zipl

Begin testing the new kernel by rebooting the computer and watching the messages to ensure that the hardware is detected properly.

39.6.4. IBM eServer iSeries Systems

The /boot/vmlinitrd-<kernel-version> file is installed when you upgrade the kernel. However, you must use the dd command to configure the system to boot the new kernel:

  1. As root, issue the command cat /proc/iSeries/mf/side to determine the default side (either A, B, or C).

  2. As root, issue the following command, where <kernel-version> is the version of the new kernel and <side> is the side from the previous command:

    dd if=/boot/vmlinitrd-<kernel-version> of=/proc/iSeries/mf/<side>/vmlinux bs=8k

Begin testing the new kernel by rebooting the computer and watching the messages to ensure that the hardware is detected properly.

39.6.5. IBM eServer pSeries Systems

IBM eServer pSeries systems use YABOOT as the boot loader, which uses /etc/aboot.conf as the configuration file. Confirm that the file contains an image section with the same version as the kernel package just installed:

boot=/dev/sda1
init-message=Welcome to Red Hat Enterprise Linux!
Hit <TAB> for boot options
 
partition=2
timeout=30
install=/usr/lib/yaboot/yaboot
delay=10
nonvram

image=/vmlinux--2.4.20-2.30.ent
        label=old
        read-only
        initrd=/initrd--2.4.20-2.30.ent.img
        append="root=LABEL=/"
 
image=/vmlinux-2.4.21-1.1931.2.399.ent
        label=linux
        read-only
        initrd=/initrd-2.4.21-1.1931.2.399.ent.img
        append="root=LABEL=/"

Notice that the default is not set to the new kernel. The kernel in the first image is booted by default. To change the default kernel to boot either move its image stanza so that it is the first one listed or add the directive default and set it to the label of the image stanza that contains the new kernel.

Begin testing the new kernel by rebooting the computer and watching the messages to ensure that the hardware is detected properly.