Kernel Upgrades with kexec and Livepatch

By Raman Kumar

Updated on Apr 12, 2025

In this tutorial, we'll discuss zero‑downtime Kernel upgrades with kexec and Livepatch. Keep your Linux servers running without rebooting.

For system administrators and developers running production Linux servers, the task of upgrading or patching the kernel often means disruptive downtime and potential business losses. Fortunately, advanced methods like kexec and Livepatch enable zero-downtime kernel updates—no more scheduling awkward maintenance windows or dealing with angry customers due to downtime.

In this guide, you'll learn step-by-step how these powerful tools work, why you should use them, and how to implement them securely and efficiently.

Understanding Kernel Upgrades Without Downtime

Why Avoid Kernel Reboots?

Kernel upgrades often patch serious security vulnerabilities, introduce performance enhancements, and fix critical bugs. Traditional kernel upgrades usually mean rebooting servers, causing:

  • Downtime and service disruption
  • Lost revenue and productivity
  • Increased operational overhead

By employing zero-downtime methods, you can achieve:

  • Continuous service availability
  • Improved security posture through timely patches
  • Reduced operational cost and complexity

What is kexec?

kexec is a Linux utility allowing you to load a new kernel directly into memory and boot into it immediately without going through the hardware reboot process. It significantly speeds up reboot times by skipping hardware initialization steps entirely.

Advantages of kexec

  • Speed: Rapid booting of the new kernel
  • Reduced Downtime: Eliminates lengthy hardware-level initialization
  • Convenience: Useful for rapid deployments of new kernel versions

However, it still requires stopping and restarting services briefly. While faster than a traditional reboot, it’s not completely downtime-free, typically causing a brief interruption of a few seconds to minutes.

What is Livepatch?

Livepatch applies kernel patches on-the-fly to a running kernel without requiring any reboot. This revolutionary approach keeps servers continuously online and responsive.

Advantages of Livepatch

  • Zero Downtime: No service interruptions during patching
  • Immediate Patching: Critical security updates can be deployed instantly
  • Safety and Stability: Patches are rigorously tested by kernel developers

Implementing Zero-Downtime Kernel Updates in Practice

Let's explore step-by-step how to set up and use these two solutions.

Step 1: Preparing your Linux Environment

Supported distributions for these methods:

  • Ubuntu 18.04+ (LTS Recommended)
  • Debian 9/10/11+
  • CentOS 7/8 (Stream)
  • Fedora (latest)
  • RHEL 7, 8, 9+

Update your system first:

sudo apt update && sudo apt upgrade -y

Step 2: Using kexec to Rapidly Boot into a New Kernel

Install kexec-tools

For Ubuntu/Debian:

sudo apt install kexec-tools

For CentOS/RHEL:

sudo yum install kexec-tools

Configure GRUB (Optional but Recommended)

Edit the GRUB configuration to enable kexec explicitly:

sudo nano /etc/default/grub

Set this line:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash crashkernel=auto"

Save and regenerate GRUB:

Ubuntu/Debian:

sudo update-grub

CentOS/RHEL:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Performing Kernel Upgrade with kexec

Download and install a new kernel:

Example on Ubuntu:

sudo apt install linux-generic-hwe-22.04

After kernel installation, identify the kernel image and initramfs:

ls /boot/vmlinuz*
ls /boot/initrd*

For example:

  • Kernel: /boot/vmlinuz-5.15.0-91-generic
  • Initramfs: /boot/initrd.img-5.15.0-91-generic

Load and execute the new kernel using kexec

sudo kexec -l /boot/vmlinuz-5.15.0-91-generic \
    --initrd=/boot/initrd.img-5.15.0-91-generic \
    --reuse-cmdline

Finally, reboot instantly into the new kernel (a few seconds downtime):

sudo systemctl kexec

Note: Your server will experience a brief (few seconds to minutes) interruption, considerably shorter than a traditional reboot.

Step 3: Implementing Livepatch for Completely Zero-Downtime Updates

Ubuntu/Debian – Canonical Livepatch Service

Create a free Ubuntu One account for your API key:

Enable Livepatch using your key:

sudo snap install canonical-livepatch
sudo canonical-livepatch enable <YOUR_TOKEN>

Check status:

sudo canonical-livepatch status --verbose

You’ll see your running kernel patches and their status clearly displayed.

CentOS/RHEL – KernelCare Livepatching Service (Third-party)

KernelCare offers an effective commercial Livepatch solution:

Install KernelCare:

curl -s https://repo.cloudlinux.com/kernelcare/kernelcare_install.sh | sudo bash

Register KernelCare (requires paid subscription/license):

sudo /usr/bin/kcarectl --register YOUR_KEY_HERE

Check status:

sudo kcarectl --info

Best Practices for Zero-Downtime Kernel Upgrades

1. Testing and Staging
Always test kernel upgrades on staging servers before deploying to production. Ensure compatibility with hardware and software environments.

2. Automation
Automate your patching cycles. For Ubuntu Livepatch, updates are automated. For kexec, consider automation through scripts or configuration management tools (Ansible, Chef, Puppet).

3. Backup Regularly
Regularly backup critical data. While Livepatch and kexec are generally safe, unexpected issues can occur, requiring rollback.

4. Monitoring and Alerts
Use monitoring tools (Nagios, Zabbix, Prometheus, Grafana) to track system health during upgrades. Set alerts for unusual kernel behavior.

5. Documentation and Logs
Keep meticulous records of kernel upgrade actions and system logs for troubleshooting.

Limitations and Considerations

When Not to Use Livepatch/kexec?

  • Major kernel version upgrades may require a traditional reboot to ensure complete stability.
  • Livepatch may not patch all kernel vulnerabilities—some updates still require a reboot.
  • Hardware-level issues might still need a traditional reboot.

Wrapping Up

Employing tools like kexec and Livepatch in your Linux administration toolkit empowers you with:

  • Near-instantaneous kernel switching (kexec).
  • Completely uninterrupted uptime during kernel patches (Livepatch).

These tools significantly increase your flexibility, reduce downtime, and improve security and availability. Embrace these methods, test rigorously, and integrate them into your regular patching routines. Your business, customers, and users will thank you.

Implement these best practices today to ensure your Linux production servers always run smoothly—without downtime interruptions.

Check out robust data center services in New Zealand