• Edited:

Find out the kernel version of Debian

Debian 13 “Trixie” ships the 6.12 kernel series, Debian 12 the 6.1 series. Which kernel actually runs on your system is one line of uname -r, no root privileges needed. This article covers the commands for kernel and distribution version, the difference between the running and the installed kernel, and how to keep the kernel current.

Why the kernel version matters in Debian

The kernel decides which hardware Debian recognises, which filesystems it can mount and which security holes are closed. Anyone tracking down a driver problem, installing software with a minimum requirement or judging a security advisory needs the exact number. Getting it takes one command: uname -r, in any terminal, without root privileges.

Two numbers are easily confused here. Debian 13 “Trixie” is the version of the distribution, 6.12 the version of the kernel inside it. They follow separate cycles and need separate commands. This article covers both, and sorts out which kernel belongs to which Debian release.

Showing the running kernel version

One command, one line of output:

uname -r

The output ends with the architecture, amd64 for instance. In front of it sit the kernel version and the ABI identifier Debian assigns for its package names. That same string turns up in the name of the installed package, which explains the second command:

apt list --installed | grep linux-image

This lists every kernel package the system keeps around, including the older ones that still appear in the bootloader menu. The distinction matters more than it looks: uname -r names the running kernel, apt list the installed ones. After a kernel update without a reboot the two differ. Not knowing that sends people hunting for a bug that isn’t there.

Other ways to read the kernel version

The file /proc/version gives more detail than uname -r:

cat /proc/version

It adds the compiler the kernel was built with and the date of the build. On a system running systemd, hostnamectl pulls kernel, distribution and architecture into a single output:

hostnamectl

Inside a container without a running systemd that command fails. For the package view alone, independent of apt, use dpkg:

dpkg --list | grep linux-image

To see what exactly is inside the package belonging to the running kernel, combine the two:

apt-cache show linux-image-$(uname -r)

How the same question is answered on other Unix systems is collected by cyberciti in an overview of the commands per platform.

For watching a server over time all of this is too granular. A tool such as Glances is the better fit there, pulling kernel, load and processes into one interface.

Which kernel ships with which Debian release?

Debian freezes the kernel per release and maintains it there with security updates. The major version stays put for the whole lifetime of a release. As of September 2026:

  • Debian 13 “Trixie” has been the stable release since 9 August 2025 and ships the 6.12 kernel series. The current point release is 13.6, dated 11 July 2026.

  • Debian 12 “Bookworm” is oldstable, runs the 6.1 series and receives Long Term Support until 30 June 2028.

  • Debian 11 “Bullseye” came with kernel 5.10. Its LTS period ended on 31 August 2026, five years after release.

  • Debian 14 “Forky” is testing, with no date set.

The mapping comes from the Debian release overview and the Trixie release notes, which spell out the move from the 6.1 to the 6.12 series. The end of Bullseye support is documented in the announcement of 31 August 2026.

Updating the kernel in Debian

Within a release this runs through ordinary package management:

sudo apt update && sudo apt upgrade

A kernel update often brings a new package name along, because the ABI identifier changes. apt upgrade handles that: according to the manual page it installs new packages when dependencies require it, but never removes any. The prerequisite is having the right metapackage installed, linux-image-amd64 on 64-bit PCs:

sudo apt install linux-image-amd64

The metapackage always pulls in the current kernel of the release. The release notes recommend exactly this route and point to uname -r as the check if the matching architecture is unclear. A new kernel only takes effect after a reboot; until then uname -r keeps reporting the old value.

A newer kernel series than the one in the release is available through Debian Backports. Those packages are taken from testing and recompiled for stable. Debian itself states that backports cannot be tested as extensively as stable and should be picked individually. Without a concrete hardware problem the step is rarely worth it on a server.

Common pitfalls

The output doesn’t match the installed package. After a kernel update without a reboot that is normal, not a fault. apt list --installed | grep linux-image shows both states side by side.

Several kernels are installed at once. Debian keeps old kernels deliberately, so the machine still boots after a botched update. In testing and unstable they pile up faster than in stable. apt autoremove clears them out and leaves the running kernel alone.

The system is too old. Once a release passes its end of support, no new kernel packages arrive. No command fixes that — only a distribution upgrade does.

In short

uname -r names the running kernel, apt list --installed | grep linux-image the installed ones, hostnamectl both together with the distribution. For the version of Debian itself, cat /etc/os-release is the most reliable route. Keeping the kernel current takes the metapackage and a reboot. Nothing more.

Frequently asked questions

How to check the kernel version in Debian?

Fastest with uname -r. The command needs no special privileges and prints the release identifier of the running kernel:

uname -r

/proc/version gives more context, adding the compiler and the date the kernel was built:

cat /proc/version

On systems with systemd, hostnamectl shows kernel, distribution and architecture in one go:

hostnamectl

All three answer the same question at different depths. Checking a software minimum requirement only calls for the first.

What is the current version of the Debian kernel?

That depends on the release. Debian 13 “Trixie”, stable since 9 August 2025, ships the 6.12 kernel series. Debian 12 “Bookworm” stays on 6.1, Debian 11 “Bullseye” on 5.10. Within a release the major version no longer changes; security updates only move the trailing digits.

Which kernel is actually running, only the system itself can answer:

uname -r

If the result differs from the series of your release, the kernel came from backports or from a self-built installation.

How to check the OS version under Debian?

/etc/os-release is the route that works everywhere. The file comes from the base package base-files and is therefore present on every Debian:

cat /etc/os-release

More verbose, but not installed everywhere, is lsb_release:

lsb_release -a

It reports distributor, version number and codename. If the command is missing, the reason is the lsb-release package, which lean installations leave out. Installing it needs sudo privileges:

sudo apt-get install lsb-release

Debian version and kernel version are two separate figures. This answers the second:

uname -r

What is the default Debian 11 kernel version?

Debian 11 “Bullseye” was released on 14 August 2021 with kernel 5.10, a series with long-term maintenance. Debian kept it for the entire lifetime of the release and applied security updates only. Custom kernels from backports or from source were possible, but stayed the exception.

That lifetime is over. Long Term Support for Bullseye ended on 31 August 2026, five years after release. Anyone asking this question today because they run such a system needs an upgrade plan more than a kernel number: Debian 12 is maintained until 30 June 2028, Debian 13 beyond that. For a subset of the Bullseye packages, third parties offer paid Extended LTS.