If your Linux PC suddenly has issues after an update to your system, it’s possible a Linux kernel update is at fault. Fortunately, rolling back or switching to another kernel is relatively easy to do on Debian, Arch, and Fedora systems. Here’s how.
Why Kernel Upgrades Cause Problems
The kernel is an integral part of a Linux system, so depending on your device and setup, a kernel update has the potential to cause problems for you or for your installed applications. Issues can range from quirky graphics behavior to a totally unusable system. If your situation is the latter, you’re in a real pickle.
To remedy this problem, many modern distros keep an older or different kernel installed that you can access at boot. These will let you test the kernel for issues or recover from a system-breaking kernel update.
RELATED: How to Check the Linux Kernel and Operating System Version
How to Boot With a Different Kernel
Of course, updates to system packages other than the Linux kernel could be the true root of your problem. One quick way to rule out the kernel as being at fault is to try booting with a different kernel.
You’ll first need to access your GRUB menu by restarting your PC. You may see GRUB appear for a few seconds at boot, displaying a few options like “Advanced options,” though some distros keep it hidden unless you access it. If it doesn’t appear at boot, press and hold the Shift key at the moment your PC begins to boot, until you see a screen similar to the image below.
Use the arrow keys to navigate to “Advanced Options for [Your Distro]” and hit Enter.
You’ll get a list of available boot options. You should see at least two, like “[Your Distro], with Linux 188.8.131.52-amd64” followed by a “recovery mode” version of that same option. The different versions you see listed are the different kernels installed.
If you only have one standard option and one recovery mode option, that, unfortunately, means you’ve only got one kernel installed. In that case, and if you can’t use the kernel at all, you can use the recovery mode to try some repair options.
If you have more than one version number, you have an alternative kernel you can boot with. The first option will be the newest and the one your PC boots with automatically. Try another non-recovery mode option by navigating to it with the arrow keys and hitting Enter.
RELATED: How to Fix an Ubuntu System When It Won’t Boot
How to Remove or Downgrade a Kernel
If booting into another kernel seems to have resolved your issue, then you probably want to continue using that kernel. Your PC, however, may by default try to use the problematic kernel each time you boot. You can either manually choose the older kernel at each boot, or delete the problematic kernel while you wait for another update.
Warning: Kernel updates may involve security fixes. For that reason, ignoring kernel updates comes with risks. If you must proceed, make sure your system is otherwise as secure as possible.
Some distros allow you to do this graphically, and they may even let you simply choose a different kernel as the default. For example, Linux Mint’s Update Manager (pictured below) has a kernel settings feature that allows you to set kernel preferences in addition to deleting unwanted kernels.
Try searching your application menu for the word “kernel” and see if any dektop tools appear. If one does, you’ll likely be able to do this graphically. Otherwise, read on to delete a kernel through the command line.
Warning: Only do proceed while booted into the kernel you want to use, not the one you plan to remove.
Remove a Kernel on Debian and Ubuntu
To remove a Linux kernel on Debian, Ubuntu, or one of their derivatives, you should first identify the installed kernel packages. Open a terminal and enter the following command.
apt list --installed | grep linux-image
You can see the version numbers in each of the package names, which come before the forward-slash (/) in the results. After getting the name of the kernel you want to remove, pass the following command, replacing
kernel-name with the kernel package name exactly as it appeared in the previous command.
sudo apt remove kernel-name
You’ll be prompted for your password, then asked to confirm the removal by typing
y and pressing enter.
Wait for the removal to complete, and your Linux PC will no longer boot into that kernel. Keep an eye on new kernels when you update your system, and test them as they arrive to see if your issue is fixed.
RELATED: How to Update Ubuntu Linux
Remove or Downgrade a Kernel on Arch
On Arch Linux, you can easily get several alternative kernels with names like
linux-zen , and
linux-lts. When choosing an option in GRUB, you probably saw only one version of each installed kernel available. Unlike kernels on Debian, Arch kernel updates don’t arrive as new packages to replace the old. Instead, each installed kernel is simply updated (or “synced”) to the latest version as it becomes available.
For that reason, it’s best to simply boot with an alternative kernel instead of downgrading your usual kernel. If you’ve booted into another kernel and know you don’t want to use the first, you can name the kernel in an uninstall command with Pacman.
sudo pacman -R kernel-name kernel-name-headers
kernel-name with the kernel of your choice. You’ll be prompted for your password before you can continue. Then you’ll need to confirm the removal by typing “y” and pressing enter.
If you want to downgrade a kernel package, know that we don’t recommend it. Rolling release updates often rely on other packages being up-to-date, so rolling back any update is risky business and could result in a broken operating system.
If you’re certain you want to, however, you can sync a kernel package to a specific version with the following command.
sudo pacman -S kernel-name=x.x.x kernel-name-headers=x.x.x
kernel-name with the kernel you want to downgrade and
x.x.x with the version you want. You can find older version numbers by looking up the kernel in Arch Package Search and clicking “View Changes.”
RELATED: How to Update Arch Linux
Remove a Kernel on Fedora
Fedora Linux by default keeps two older versions of the kernel installed on your device along with the newest. With this
rpm command, you can identify the package names.
rpm -qa kernel-core
You’ll see a list of all installed kernels next to their version numbers.
After booting with a different kernel, use dnf to uninstall the problematic kernel.
sudo dnf remove kernel-core-x.x.x-xxx.fcxx.x86_64
You’ll get a prompt to confirm the uninstallation. Type y and press enter to confirm.
After removing the kernel, your system won’t be able to boot into a newer kernel until you allow a kernel update. When a new one is available, try it and see if your issue’s been fixed.