Manually Upgrading the RedHat Kernel

Reference:

How do I upgrade the kernel to a particular version manually?
How to update/upgrade the Red Hat Enterprise Linux kernel?

Overview of kernel packages

Red Hat Enterprise Linux contains the following kernel packages:

  • kernel — Contains the kernel for single-core, multi-core, and multi-processor systems.

  • kernel-debug — Contains a kernel with numerous debugging options enabled for kernel diagnosis, at the expense of reduced performance.

  • kernel-devel — Contains the kernel headers and makefiles sufficient to build modules against the kernel package.

  • kernel-debug-devel — Contains the development version of the kernel with numerous debugging options enabled for kernel diagnosis, at the expense of reduced performance.

  • kernel-doc — Documentation files from the kernel source. Various portions of the Linux kernel and the device drivers shipped with it are documented in these files. Installation of this package provides a reference to the options that can be passed to Linux kernel modules at load time.
    By default, these files are placed in the /usr/share/doc/kernel-doc-kernel_version/ directory.

  • kernel-headers — Includes the C header files that specify the interface between the Linux kernel and user-space libraries and programs. The header files define structures and constants that are needed for building most standard programs.

  • linux-firmware — Contains all of the firmware files that are required by various devices to operate.

  • perf — This package contains the perf tool, which enables performance monitoring of the Linux kernel.

  • kernel-abi-whitelists — Contains information pertaining to the Red Hat Enterprise Linux kernel ABI, including a lists of kernel symbols that are needed by external Linux kernel modules and a yum plug-in to aid enforcement.

  • kernel-tools — Contains tools for manipulating the Linux kernel and supporting documentation.

Preparing to upgrade

To determine which kernel packages are installed:

~]# yum list installed "kernel-*"
kernel.x86_64 3.10.0-54.0.1.el7 @rhel7/7.0
kernel-devel.x86_64 3.10.0-54.0.1.el7 @rhel7
kernel-headers.x86_64 3.10.0-54.0.1.el7 @rhel7/7.0

Downloading the upgraded kernel:

Customer Portal

Performing the upgrade

At a shell prompt, change to the directory that contains the kernel RPM packages. Use -i argument with the rpm command to keep the old kernel. Do not use the -U option, since it overwrites the currently installed kernel, which creates boot loader problems. For example:

rpm -ivh kernel-<version>.rpm

Never use "rpm -Uvh" here. To leave an old version just in case.

Update other packages:

rpm -Uvh kernel-devel-<version>.rpm
rpm -Uvh kernel-headers-<version>.rpm

Verifying the initial RAM file system image

As root, list the contents in the /boot directory and find the kernel (vmlinuz-kernel_version) and initramfs-kernel_version with the latest (most recent) version number:

~]# ls -1 /boot
config-3.10.0-67.el7.x86_64
config-3.10.0-78.el7.x86_64
efi
grub
grub2
initramfs-0-rescue-07f43f20a54c4ce8ada8b70d33fd001c.img
initramfs-3.10.0-67.el7.x86_64.img
initramfs-3.10.0-67.el7.x86_64kdump.img
initramfs-3.10.0-78.el7.x86_64.img
initramfs-3.10.0-78.el7.x86_64kdump.img
initrd-plymouth.img
symvers-3.10.0-67.el7.x86_64.gz
symvers-3.10.0-78.el7.x86_64.gz
System.map-3.10.0-67.el7.x86_64
System.map-3.10.0-78.el7.x86_64
vmlinuz-0-rescue-07f43f20a54c4ce8ada8b70d33fd001c
vmlinuz-3.10.0-67.el7.x86_64
vmlinuz-3.10.0-78.el7.x86_64