Last updated:

The Linux Kernel is the core of the Operating system. It is a special program that handles system calls, manages the memory or devices, permission control and system’s security. In short, the Kernel manages everything. 

Quick answer: On Debian 13 (Trixie) and Debian 12 (Bookworm) the kernel is updated like any other package. Run sudo apt update and sudo apt full-upgrade, reboot, then confirm the running kernel with uname -r. The linux-image-amd64 package always points to the newest kernel Debian ships for your release, so you stay on that release’s kernel series (6.12 on Debian 13, 6.1 on Debian 12) unless you add backports or a third-party kernel.

uname -r
sudo apt update
sudo apt full-upgrade
sudo reboot
uname -r

Versions in the Debian archive on 10 October 2026: linux-image-amd64 6.12.107-1 in Debian 13 and 6.1.176-1 in Debian 12 (amd64). The exact kernel package name on your machine looks like linux-image-6.12.x-amd64 or linux-image-6.1.0-NN-amd64, where the number changes with each ABI update, so check yours with apt policy linux-image-amd64 and dpkg --list | grep linux-image instead of copying a version from an old tutorial. The screenshots in this guide were captured on Debian 12 when the guide was first written. Debian 12’s regular support ended on 12 July 2026, so for a server you plan to keep, see our guide to upgrading Debian 12 to Debian 13.

Which method should you use?

Goal Method Risk
Get the latest security and bug-fix kernel for your release sudo apt update && sudo apt full-upgrade, then reboot Low. The previous kernel stays installed and can be chosen from the GRUB menu.
Newer hardware support than the stock kernel Debian backports: sudo apt install -t bookworm-backports linux-image-amd64 (use trixie-backports on Debian 13) after enabling backports as described on backports.debian.org Medium. Not tested in this guide.
A specific or mainline-style kernel Third-party kernel such as Zabbly (below) Higher. May not boot with Secure Boot and is not covered by Debian security updates.
Free disk space in /boot Remove old kernels (last section) Medium if you remove the wrong one.

If the update does not work

Symptom Likely cause Fix
apt-get upgrade says the kernel packages are kept back A new kernel ABI is a new package, and apt-get upgrade will not install new packages Use sudo apt full-upgrade (or sudo apt upgrade)
uname -r still shows the old version after the upgrade You have not rebooted, or GRUB booted a different entry Reboot, then check the GRUB entry. See the default-kernel section below.
The system will not boot on the new kernel Driver or hardware incompatibility Hold Shift (BIOS) or press Esc (UEFI) at boot, open Advanced options for Debian GNU/Linux, and pick the previous kernel
No space left on /boot Many old kernels installed Reboot into the newest kernel, then run sudo apt autoremove --purge and review what it lists before confirming

Check you have sudo rights first: use sudo on Debian 12. To learn more about what the kernel does, see what the Linux kernel is. The manual steps below show how to choose a specific kernel, change the GRUB default, install a third-party kernel and remove kernels.

How to Install a Specific Kernel Version on Debian 13 and 12

To update the Kernel on Debian 12, Users can use the official Kernels as well as the unofficial Kernels (for more features and enhancements). users need the “sudo” privileges, so make sure your account can use sudo on Debian 12 first. The process to update the Kernel on Debian 12 is illustrated in the below steps:

Step 1: Check Kernel Version

Before updating the Kernel version, check the current version — you can also find the Linux OS name and kernel version the same way. Use the “uname” command with the “-r” flag to check:

uname -r
uname -r output showing the current kernel version on Debian 12

Step 2: Update System Packages

Use the “apt update” command to update the system’s packages information on the system. Users need to practice this before installing any package on any Linux distribution:

sudo apt update
sudo apt update output on Debian 12

Step 3: Search for the Latest Debian 12 Kernel

Use the “apt-cache” command to search for the latest Debian 12 Kernel. It looks for all the Kernels available from the list of configured repositories:

sudo apt-cache search linux-image
apt-cache search linux-image output listing available kernel packages on Debian 12

From the above output, users must note down the Kernel version they wish to install.

Step 4: Update the Kernel 

Next, users can install the desired kernel using the following format:

sudo apt install <linux_image_version>

As an example, the screenshots install 6.1.0-17-amd64, which was the newest Debian 12 kernel when this guide was first written. It is not the current one, so take the package name from your own apt-cache search linux-image output:

sudo apt install linux-image-6.1.0-17-amd64
Installing a specific linux-image package with apt on Debian 12

To verify the installation, run the “dpkg” command with the “grep” command as follows:

dpkg --list | grep linux-image
dpkg list filtered for linux-image showing the installed kernel on Debian 12

The above snippet confirms the installation of the Kernel “6.1.0-17-amd64”.

How to Change the Default Kernel on Debian 13 and 12

Check this first: grub-set-default only takes effect when /etc/default/grub contains GRUB_DEFAULT=saved. After changing that line, run sudo update-grub. The argument is a GRUB menu entry (its number or its title as listed in /boot/grub/grub.cfg), and entries inside the Advanced options submenu are written as submenu title>entry title. If you skip these, the command prints nothing and the default does not change. This is based on the GRUB manual and was not re-tested here. Back up first: sudo cp /etc/default/grub /etc/default/grub.bak.

For changing the default Kernel, Debian offers the “grub-set-default” command. Let’s change the default kernel to “6.1.0-17-amd64” using the following command:

sudo grub-set-default 6.1.0-17-amd64
grub-set-default command run on Debian 12 with no output

If the above command shows no output, the command runs successfully and it changes the default Kernel.

The changes take effect when the system reboots and to confirm them, run:

uname -r
uname -r output after reboot showing the running kernel on Debian 12

Note: The system ran with the direct boot without interacting with the GRUB Menu where you can choose which Kernel to boot with.

How to Boot With a Different Kernel on Debian 13 and 12

The “GRUB Menu” on Debian 12 enables the users to choose from a Kernel to boot the OS without changing the default Kernel. To open a GRUB menu, there are the following cases: 

  • Press and Hold the Shift Key
  • Repeatedly press the escape key (for UEFI).

After entering the “GRUB Menu”, select the “Advanced options for Debian GNU/Linux” option, as seen below:

GRUB menu with Advanced options for Debian GNU/Linux selected

From the next screen, users can select any Kernel to boot the OS from. Additionally, users can access the “recovery mode” for each Kernel:

GRUB advanced options listing each installed kernel and its recovery mode

How to Install a Third-Party Kernel (Zabbly) on Debian 13 and 12

The screenshots below show an older method. They were captured with a keyring in /usr/share/keyrings and a .list file when the Zabbly kernel was 6.6.11. Zabbly’s own page (github.com/zabbly/linux, read 10 October 2026) now lists Debian 12 and Debian 13 and uses a key in /etc/apt/keyrings plus a deb822 .sources file. Verify the key fingerprint it publishes (4EFC 5906 96CB 15B8 7C73 A3AD 82CC 8797 C838 DCFD) before trusting the repository, then use this current form as root. I did not run these on a Debian host in this session.

mkdir -p /etc/apt/keyrings/
curl -fsSL https://pkgs.zabbly.com/key.asc -o /etc/apt/keyrings/zabbly.asc
curl -fsSL https://pkgs.zabbly.com/key.asc | gpg --show-keys --fingerprint

sh -c 'cat <<EOF > /etc/apt/sources.list.d/zabbly-kernel-stable.sources
Enabled: yes
Types: deb
URIs: https://pkgs.zabbly.com/kernel/stable
Suites: $(. /etc/os-release && echo ${VERSION_CODENAME})
Components: main
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/zabbly.asc

EOF'

apt-get update
apt-get install linux-zabbly

Zabbly kernels are not signed by a Debian-trusted key, so Secure Boot may need to be disabled. To undo, remove /etc/apt/sources.list.d/zabbly-kernel-stable.sources, boot a Debian kernel from the GRUB menu and purge the Zabbly packages. The steps and screenshots below are the older walkthrough, kept for reference.

Users can install and deploy the custom/third-party Kernel on Debian 12 for additional functionality. Let’s take you to the steps to install “Zabbly Kernel”:

Step 1: Install the “Zabbly Kernel Dependencies”

To ensure the successful installation of the “Zabbly Kernel”. It comes with enhanced support, stability and features. It includes fewer bugs compared to the official kernel and updates are more frequent. Use the following command to install the “Zabbly Kernel” dependencies: 

sudo apt install lsb-release curl apt-transport-https software-properties-common ca-certificates -y
Installing Zabbly kernel dependencies with apt on Debian 12

Step 2: Add GPG key for Zabbly Kernel

Now, download the “Zabbly Public GPG Key” and store it in the list of trusted keys. Doing this makes them download the software packages and update them from the Zabbly repository. The “GPG Key” verifies the origin and the validity of the file:

curl -fSsL https://pkgs.zabbly.com/key.asc | gpg --dearmor | sudo tee /usr/share/keyrings/linux-zabbly.gpg > /dev/null
Downloading the Zabbly GPG key into the keyrings folder on Debian 12

Step 3: Add Repository for Zabbly Kernel

To add the “Zabbly Repository” to the “/etc/apt/sources.list.d/”, use the below-stated command:

codename=$(lsb_release -sc) && echo deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/linux-zabbly.gpg] https://pkgs.zabbly.com/kernel/stable $codename main | sudo tee /etc/apt/sources.list.d/linux-zabbly.list
Adding the Zabbly kernel repository to sources.list.d on Debian 12

Step 4: Update System’s Packages/Repositories

To update the system’s packages/repositories, run the following command:

sudo apt update
sudo apt update fetching the Zabbly repository on Debian 12

Step 5: Install Zabbly Kernel

Now, use the “apt install” command to install “Zabbly Kernel”, as follows:

sudo apt install linux-zabbly -y
Installing the linux-zabbly kernel package with apt on Debian 12

The above snippet confirms the installation of “Zabbly Kernel” on Debian 12.

Step 6: Set the Zabbly Kernel as the Default Kernel on Debian 12

Here, run the following commands to list the “Linux Images” on the system and then set a default kernel:

dpkg --list | grep linux-image
sudo grub-set-default linux-image-6.6.11-zabbly+
dpkg list of linux-image packages and grub-set-default for the Zabbly kernel

Here, 

  • The “dpkg” and the “grep” commands list the “Linux Images”. 
  • The “grub-set-default” sets the default Kernel on Debian 12.
  •  The names of the Kernels installed on the system are displayed next to the “ii”, as seen below:

To confirm the changes, reboot the system and run the “uname” command with the “-r” flag, as follows:

uname -r
uname -r output showing the Zabbly kernel running on Debian 12

How to Remove an Old Kernel on Debian 13 and 12

A few users may feel irritated as the new Kernel can bring bugs or slow down the system’s performance. It also consumes lots of space, so removing it would be necessary in certain cases. To remove/uninstall a Kernel on Debian 12, use the following format:

sudo apt-get purge linux-image-[version-number]*

Let’s attempt to remove/uninstall the “Zabbly Kernel” via the following command:

sudo apt-get purge linux-image-6.6.11-zabbly+
Purging the Zabbly kernel with apt-get purge on Debian 12

The above command uninstalls the “Zabbly Kernel” from Debian 12.

That’s all for updating the kernel on Debian 13 and 12.

Before changing kernels

Kernel updates affect hardware support, drivers, and boot behavior, so keep at least one known-working kernel available until the new one is tested.

If you install a third-party kernel, read the source and compatibility notes carefully. Debian stable kernels are usually safer for production systems.

Related Debian 12 guides

Final Words

To update the Kernel on Debian 12, run “sudo apt-cache search linux-image” to find the latest available Kernels for your system. Then use “sudo apt install linux_image_version” and replace “linux_image_version” with the Kernel version to whom you want to update.To change the default Kernel version on Debian 12, execute “sudo grub-set-default <Kernel-Name>” and replace “<Kernel-Name>” with the Kernel you want to set as default.