Linux kernel still old version after update

  • 7001056
  • 04-Mar-2009
  • 08-Nov-2012

Environment

Novell Open Enterprise Server 1 (OES 1)
Novell Open Enterprise Server 2 (OES 2)
SUSE Linux Enterprise Desktop 10
SUSE Linux Enterprise Server 10
SUSE Linux Enterprise Server 9
EVMS
Single Disk

Situation

Linux kernel fails to update after YOU or rug update
The files in /boot and /lib/modules have been updated to the latest kernel, but uname -r shows the previous kernel.
The /boot/grub directory is missing, but grub works fine on a reboot.
Split kernel scenario
The /boot was not mounted when the server was updated, causing the boot loader to see the old kernel and the new kernel being installed into the empty /boot mount point.

Resolution

PREVENTION
Make sure /boot is mounted prior to updating the kernel.

After the OES install is complete, edit the /etc/fstab file to modify the location of the /boot partition from /dev/ to /dev/evms/ where it can be managed by EVMS. For example, change /dev/hda1 to /dev/evms/hda1.

Refer to the OES documentation: "Installing Linux with EVMS as the Volume Manager"

For example the fstab could contain a statement as follows:
/dev/disk/by-id/cciss-3600508b1001039333520202020200000-part2 /boot                ext3       defaults              1 2
The kernel is loaded from this disk at boot time, but after the server loads EVMS this mount point is replaced as follows:
/dev/evms/lvm2/system/root_vol on /  type reiserfs (rw)
This results in patch updates writing to a location which is not read at boot time that manifests a the kernel in memory that is different to what is seen in /boot after the server is booted up.
 
REBOOTING AFTER UPGRADE

If you have just updated your server and /boot was mounted correctly, then you just need to reboot to activate the newly installed kernel.

FIXING A FAILED KERNEL UPGRADE

1. Edit the /etc/fstab and modify the location of the /boot partition as described in the PREVENTION section above.
2. Reboot
3. Make sure /boot has been mounted properly. (It will have the previous kernel file and a /boot/grub directory.)
4. Reinstall your updated kernel. For example, if the new kernel is 2.6.5-7.193, then:

Method 1
a. rpm -ivh kernel-default-2.6.5-7.193.i586.rpm
b. reboot

Method 2
a. Complete steps 1-3.
b. unmount /boot
c. cp /boot/initrd-2.6* /tmp
d. cp /boot/vmlinuz-2.6* /tmp
e. mount /boot
f. cp /tmp/initrd-2.6* /boot
g. cp /tmp/vmlinuz-2.6* /boot
h. reboot

Additional Information

/boot was created as a separate partition on a single disk with an EVMS parition, or it was not mounted when the server's kernel was updated. EVMS was managing the EVMS partition, but not the regular /boot partition. This caused the updated files to be placed in the empty mount point /boot on the EVMS partition. Only the original /boot partition with the original kernel is availble to GRUB at boot time.
EVMS will fail on certain HP hardware using the Smart Array controller. See TID2971770 - OES install fails with EVMS Volume Manager

Formerly known as TID# 10098723