Back Next Previous Contents

7. Appendix A: 6.2 Bugfix errata RHBA-2000:013-01 (kernel-2.2.14-6.x.1)

This appendix deals directly with upgrading a box installed with a stock Red Hat Intel 6.2 release to the kernel errata released on 14 April 2000.

First, download the appropriate files indicated by the errata: http://www.redhat.com/support/errata/RHBA-2000013-01.html

For this example, it is assumed that the kernel version to be used will be 2.2.14-6.0.1smp and that scsi exists on the system (thus the need for a initrd.)

Save the files needed to a temporary directory. I usually keep an errata directory in /usr/local to download updates into (or /home/ftp/pub if the machine might be serving them out).

So /usr/local/62errata should have the following files:


kernel-2.2.14-6.0.1.i686.rpm
kernel-doc-2.2.14-6.0.1.i386.rpm
kernel-headers-2.2.14-6.0.1.i386.rpm
kernel-ibcs-2.2.14-6.0.1.i386.rpm
kernel-smp-2.2.14-6.0.1.i686.rpm
kernel-source-2.2.14-6.0.1.i386.rpm
kernel-utils-2.2.14-6.0.1.i386.rpm
            

Install the files with RPM (when doing a kernel upgrade, always install files).


[root@blippy 62errata]# rpm --force -ivh kernel-2.2.14-6.0.1.i686.rpm kernel-smp-2.2.14-6.0.1.i686.rpm
            

And upgrade the other non-kernel errata if desired.


[root@blippy 62errata]# rpm -Uvh kernel-headers-2.2.14-6.0.1.i386.rpm kernel-doc-2.2.14-6.0.1.i386.rpm \
> kernel-ibcs-2.2.14-6.0.1.i386.rpm kernel-source-2.2.14-6.0.1.i386.rpm kernel-utils-2.2.14-6.0.1.i386.rpm
            

Along with the pcmcia package if needed.

Then check the files in /boot.


[root@blippy /root]# ls -l /boot
lrwxrwxrwx    1 root     root           26 Apr 20 16:20 System.map -> System.map-2.2.14-6.0.1smp
-rw-r--r--    1 root     root       203645 Mar  7 21:12 System.map-2.2.14-5.0
-rw-r--r--    1 root     root       214981 Mar  7 21:06 System.map-2.2.14-5.0smp
-rw-r--r--    1 root     root       202447 Apr 14 10:49 System.map-2.2.14-6.0.1
-rw-r--r--    1 root     root       213784 Apr 14 10:43 System.map-2.2.14-6.0.1smp
-rw-r--r--    1 root     root          512 Mar  3 19:11 boot.4800
-rw-r--r--    1 root     root         4568 Feb  2 17:03 boot.b
-rw-r--r--    1 root     root          612 Feb  2 17:03 chain.b
-rw-r--r--    1 root     root       389960 Mar  3 19:11 initrd-2.2.14-5.0.img
-rw-r--r--    1 root     root       390122 Mar  3 19:11 initrd-2.2.14-5.0smp.img
-rw-r--r--    1 root     root       390222 Apr 20 16:23 initrd-2.2.14-6.0.1.img
-rw-r--r--    1 root     root       390427 Apr 20 16:21 initrd-2.2.14-6.0.1smp.img
-rw-r--r--    1 root     root            0 Apr 14 10:19 kernel.h
drwxr-xr-x    2 root     root        12288 Mar  3 19:01 lost+found
-rw-------    1 root     root        49664 Apr 20 16:24 map
lrwxrwxrwx    1 root     root           24 Apr 20 16:19 module-info -> module-info-2.2.14-6.0.1smp
-rw-r--r--    1 root     root        11773 Mar  7 21:12 module-info-2.2.14-5.0
-rw-r--r--    1 root     root        11773 Mar  7 21:06 module-info-2.2.14-5.0smp
-rw-r--r--    1 root     root        11773 Apr 14 10:49 module-info-2.2.14-6.0.1
-rw-r--r--    1 root     root        11773 Apr 14 10:43 module-info-2.2.14-6.0.1smp
-rw-r--r--    1 root     root          620 Feb  2 17:03 os2_d.b
-rwxr-xr-x    1 root     root      1615706 Mar  7 21:12 vmlinux-2.2.14-5.0
-rwxr-xr-x    1 root     root      1723324 Mar  7 21:06 vmlinux-2.2.14-5.0smp
-rwxr-xr-x    1 root     root      1622273 Apr 14 10:49 vmlinux-2.2.14-6.0.1
-rwxr-xr-x    1 root     root      1729888 Apr 14 10:43 vmlinux-2.2.14-6.0.1smp
lrwxrwxrwx    1 root     root           23 Apr 20 16:20 vmlinuz -> vmlinuz-2.2.14-6.0.1smp
-rw-r--r--    1 root     root       622249 Mar  7 21:12 vmlinuz-2.2.14-5.0
-rw-r--r--    1 root     root       647013 Mar  7 21:06 vmlinuz-2.2.14-5.0smp
-rw-r--r--    1 root     root       637961 Apr 14 10:49 vmlinuz-2.2.14-6.0.1
-rw-r--r--    1 root     root       662586 Apr 14 10:43 vmlinuz-2.2.14-6.0.1smp
            

System.map and module-info should both be pointing at the appropriate file for your kernel, in this case the ones for 2.2.14-6.0.1smp. You can use the "ln -s -f <existing file> <link name>" command to redirect the links if needed.


[root@blippy /root]# cd /boot
[root@blippy /boot]# ln -s -f System.map-2.2.14-6.0.1smp System.map
        

Now to create a initrd file. If you don't have a scsi system then you probably can skip this step. If you are not sure, check the /boot directory . . . If you have an initrd, you will need a new one.

The mkinitrd command takes arguments in the format


        mkinitrd </path/to/file/to/create> <kernel-version-to-create>
        

Since you will want an initrd to use with both the smp kernel and the uniprocessor kernel (the latter in the case of emergencies or debugging) the mkinitrd command will need to be run twice, slightly differently:


mkinitrd /boot/initrd-2.2.14-6.0.1smp.img 2.2.14-6.0.1smp
mkinitrd /boot/initrd-2.2.14-6.0.1.img 2.2.14-6.0.1
            

Most errors at this point are usually caused by typos, the wrong kernel being specified, or the loop kernel module not loaded. In the latter case, use


        modprobe loop
        

and run the mkinitrd commands again.

Now comes the fun of editing the configuration file for LILO.

Here's the original /etc/lilo.conf file on my system:


boot=/dev/ida/c0d0
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux

image=/boot/vmlinuz-2.2.14-5.0smp
        label=linux
        initrd=/boot/initrd-2.2.14-5.0smp.img
        read-only
        root=/dev/ida/c0d0p5
        optional

image=/boot/vmlinuz-2.2.14-5.0
        label=linux-up
        initrd=/boot/initrd-2.2.14-5.0.img
        read-only
        root=/dev/ida/c0d0p5
        optional
            

The /dev/ida/c0d0p5 is for the compaq smart array raid controller in this particular system. Most people will have /dev/hda# or /dev/sda#.

Here's the modified lilo.conf file. Basically, just copy the original two image stanzas and edit the version numbers for the kernels.


boot=/dev/ida/c0d0
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux

image=/boot/vmlinuz-2.2.14-6.0.1smp
        label=linux
        alias=l
        initrd=/boot/initrd-2.2.14-6.0.1smp.img
        read-only
        root=/dev/ida/c0d0p5

image=/boot/vmlinuz-2.2.14-6.0.1
        label=linux-up
        initrd=/boot/initrd-2.2.14-6.0.1.img
        read-only
        root=/dev/ida/c0d0p5

image=/boot/vmlinuz-2.2.14-5.0smp
        label=linux-old
        initrd=/boot/initrd-2.2.14-5.0smp.img
        read-only
        root=/dev/ida/c0d0p5
        optional

image=/boot/vmlinuz-2.2.14-5.0
        label=linux-up-old
        initrd=/boot/initrd-2.2.14-5.0.img
        read-only
        root=/dev/ida/c0d0p5
        optional

            

Then run


        /sbin/lilo -v 
            

to write the changed lilo configuration to the LILO boot loader. I got the following output.


[root@blippy /root]# /sbin/lilo -v
LILO version 21, Copyright 1992-1998 Werner Almesberger

Reading boot sector from /dev/ida/c0d0
Merging with /boot/boot.b
Boot image: /boot/vmlinuz-2.2.14-6.0.1smp
Mapping RAM disk /boot/initrd-2.2.14-6.0.1smp.img
Added linux (alias l) *
Boot image: /boot/vmlinuz-2.2.14-6.0.1
Mapping RAM disk /boot/initrd-2.2.14-6.0.1.img
Added linux-up
Boot image: /boot/vmlinuz-2.2.14-5.0smp
Mapping RAM disk /boot/initrd-2.2.14-5.0smp.img
Added linux-old
Boot image: /boot/vmlinuz-2.2.14-5.0
Mapping RAM disk /boot/initrd-2.2.14-5.0.img
Added linux-up-old
/boot/boot.4800 exists - no backup copy made.
Writing boot sector.
            

That's it. . . time to reboot and try out the new kernel. It should automatically load without intervention.


Back Next Previous Contents