How to Upgrade the Linux Kernel on CentOS 7

Grab your VPS today

pricing starting from $8/month

Step 1 – Update and Upgrade CentOS 7

The first thing we must do before upgrading the kernel is to upgrade all packages to the latest version. Update the repository and all packages to their latest versions with yum command below.

yum -y update

Now install yum plugin to get faster when installing and updating packages.

yum -y install yum-plugin-fastestmirror

CentOS 7 System updated and all packages upgraded to latest versions.

Update all packages

Step 2 – Checking the Kernel Version

In this tutorial, we will use CentOS 7.6 with default kernel 3.10. Check your CentOS version with commands below.

cat /etc/redhat-release cat /etc/os-release

You will get the system info as below.

Check CentOS release and Kernel version

For checking the kernel version, you can also use the uname command.

uname -snr

And you get the result about Linux kernel version and the system architecture.

Check the CentOS Kernel version

Step 3 – Add ELRepo Repository

Before installing the new kernel version, we need to add a new repository – the ELRepo repository.

Add ELRepo gpg key to the system.

rpm --import

Now add new ELRepo repository with rpm command.

rpm -Uvh

When it’s complete, check all repository enabled on the system, and make sure ELRepo is on the list.

yum repolist
Add ELRepo Repository

ELRepo repository has been added to CentOS 7 server.

Step 4 – Install New CentOS Kernel Version

In this step, we will install a new latest kernel from ELRepo repository, kernel version – the Latest stable version on

Install ELRepo kernel version with yum command below.

yum --enablerepo=elrepo-kernel install kernel-ml

–enablerepo is an option to enable specific repository on CentOS system. By default, ‘elrepo’ repository is enabled, but not for the ‘elrepo-kernel’ repository.

Install Linux Kernel 5.0 on CentOS 7

You can check all of the available repositories on the system, enabled and disabled repository with the command below.

yum repolist all

List CentOS 7 repositories, enabled and disabled repositories.

List CentOS Repositories

Step 5 – Configure Grub2 on CentOS 7

At step 4, we’ve already installed a new kernel 5.0.11 to the system. Now, I will show you how to configure the default kernel version to load when the system is starting.

Check all available kernel versions in the Grub2 with awk command below.

sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

You see that we have two kernel version – 3.10 and 5.0.11.

Now we want to configure the default kernel that will run when the system is starting. We will use kernel 5.0 as our default, so you can use the command below to set it up.

sudo grub2-set-default 0

0 – it’s from the awk command on the top. Kernel 5.0.11 = 0, and Kernel 3.10 = 1. When you want to back to the old kernel, you can change the value of the grub2-set-default command to 1.

Next, generate the grub2 config with ‘gurb2-mkconfig’ command, then reboot the server.

sudo grub2-mkconfig -o /boot/grub2/grub.cfg sudo reboot
Configure default Kernel in Grub2

Please login to the server again, and check currently kernel usage.

uname -snr
Check the Kernel Version

You get a result kernel version 5.0.11 is being used on your system.

Step 6 – Remove an Old Kernel (Optional)

This is an optional step that is useful to get more free space. In this step, I will show you how to remove an old kernel from your CentOS 7 system. This should be done when you have a more than 3 or 5 kernel versions installed on the server.

For this purpose, we need to install the yum-utils utility from the repository.

yum install yum-utils

Now clean your old kernel with command below.

package-cleanup --oldkernels

If you get the result below.

Securely remove old Kernel on CentOS

That means you’ve only 2 or 3 Kernel versions installed. If you have more than 3 versions installed, the command will automatically remove the old kernel from your system.

CentOS 7 Kernel has been updated to the latest stable using ELRepo Kernel Version.


Table of Contents

Article database

Grab your VPS today

pricing starting from $8/month