Context
You have a Debian VPS with Winheberg and you want to move to a more recent kernel than the one installed by default? The default Debian Stable kernel is deliberately very conservative, a guarantee of solid stability, but it can be too old for some uses, especially if you want the latest network optimisations, the newest hardware drivers, or the most recent features of the Linux kernel.
This guide explains how to install a more recent kernel from the official Debian backports repositories, which offer more modern versions of the Linux kernel while still being maintained by the Debian team.
Why update your kernel?
The kernel is the core of your Linux system. Updating it brings several concrete benefits.
- Better performance on network, disk and CPU thanks to recent software optimisations, scheduler and TCP congestion algorithms
- More recent virtio drivers, virtio-net and virtio-blk/scsi, which bring new features and better performance on the guest side
- New features such as io_uring, fs-verity and recent BPF and eBPF capabilities
- Better support for containers, Docker and Podman, and for nested virtualisation
Kernel security fixes arrive automatically through the usual updates with sudo apt update && sudo apt full-upgrade. The bookworm-security repository, and its equivalent for other versions, continuously provides critical patches on the standard kernel. You therefore do not need to move to backports just for security.
The real value of backports is moving to a more recent major version of the kernel, for example 6.1 to 6.12, to get the new features and the latest optimisations, not for the security fixes that are already available on the standard kernel.
The default Debian Stable kernel is deliberately conservative to guarantee maximum stability. Moving to a backports kernel is only useful if you have a real need for a more recent version, for example for new virtio features, advanced Docker compatibility, or modern kernel capabilities.
Prerequisites
- A Debian VPS, version 11, 12 or 13, with Winheberg
- Root SSH access or a user with
sudo - Mandatory, a recent backup of your VPS before any operation
- A few minutes ahead of you, with a reboot planned at the end of the procedure
Winheberg VPSes are based on Debian cloud images. If a new kernel prevents booting, you have a console available from your client area that displays the VPS boot screen. You can bring up the GRUB menu to reboot on a previous kernel, or switch to a rescue system via an ISO to repair your installation. Still keep a recent backup before touching the kernel, it remains your ultimate safety net if the repair fails.
Any kernel change involves a server reboot. If you host a production service, website, game server or database, warn your users and schedule this operation during off-peak hours to limit the impact.
1. Check your current kernel version
First, check which kernel version currently runs on your VPS so you can compare after the operation.
Connect to your VPS over SSH and run the following command.
uname -r
You will get something like 6.1.0-25-amd64 or 6.12.88-1~bpo12+1. This is the version currently running.
To see the details of installed and available kernels, use apt policy.
apt policy linux-image-amd64
Here is a typical output on a Debian 12 (Bookworm) VPS.
linux-image-amd64:
Installed: 6.12.88-1~bpo12+1
Candidate: 6.12.88-1~bpo12+1
Version table:
*** 6.12.88-1~bpo12+1 100
100 mirror+file:/etc/apt/mirrors/debian.list bookworm-backports/main amd64 Packages
100 /var/lib/dpkg/status
6.1.172-1 500
500 mirror+file:/etc/apt/mirrors/debian-security.list bookworm-security/main amd64 Packages
6.1.170-3 500
500 mirror+file:/etc/apt/mirrors/debian.list bookworm/main amd64 Packages
This example shows the following.
- The kernel
6.12.88-1~bpo12+1is installed, coming frombookworm-backports - The kernel
6.1.172-1is available frombookworm-security, the official security patches applied to the standard kernel - The kernel
6.1.170-3is available from the standardbookwormrepository
The bookworm-security repository is crucial. It provides the official security fixes on the standard Debian kernel. As long as you regularly run sudo apt update && sudo apt full-upgrade, your kernel receives these patches automatically, with no manual action on your part. This is why staying on the standard kernel is perfectly safe for most uses.
The bpo12+1 suffix marks a kernel from the backports for Bookworm (Debian 12). This is what we aim to install for a more recent version.
2. Enable the backports repository
On Debian Stable, backports are not always enabled by default. You need to check for them and add them if necessary.
Identify your Debian version codename
First, find out which Debian version you use, because the backports repository name changes with the version.
. /etc/os-release && echo "$VERSION_CODENAME"
You will get bullseye, bookworm or trixie. Here is the mapping table.
| Debian version | Codename | Backports repository to use |
|---|---|---|
| Debian 11 | bullseye |
bullseye-backports |
| Debian 12 | bookworm |
bookworm-backports |
| Debian 13 | trixie |
trixie-backports |
Always use the codename matching your installed version. Mixing a backports repository from another version can break your system. If you are on Debian 11 Bullseye, use bullseye-backports, on Debian 12 Bookworm use bookworm-backports, and so on.
If you are on Debian 11 Bullseye, note that this version moved to the end of standard support in August 2024 and is now maintained only by the LTS project until mid-2026. For a production VPS, seriously consider a migration to Debian 12 or 13 rather than a simple kernel update.
Check whether backports are already enabled
Good news for Winheberg clients, our Debian VPSes, 12 and 13, ship with backports already enabled in the new DEB822 format. Check with the following command.
grep -r "backports" /etc/apt/
If you see a line like this one in /etc/apt/sources.list.d/debian.sources, you are already set.
Suites: bookworm bookworm-updates bookworm-backports
The suites are adapted to your version, for example trixie trixie-updates trixie-backports on Debian 13. In that case, go straight to step 3, backports are enabled and you can install the kernel right away.
Add backports manually, if needed
If the command above returns nothing, or if you only see the standard repositories without -backports, you need to add the repository manually.
For Debian 11 (Bullseye), create a dedicated file.
echo "deb http://deb.debian.org/debian bullseye-backports main contrib non-free" | sudo tee /etc/apt/sources.list.d/backports.list
For Debian 12 (Bookworm), run the following command.
echo "deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware" | sudo tee /etc/apt/sources.list.d/backports.list
For Debian 13 (Trixie), run this one instead.
echo "deb http://deb.debian.org/debian trixie-backports main contrib non-free non-free-firmware" | sudo tee /etc/apt/sources.list.d/backports.list
Then in every case, refresh the list of available packages.
sudo apt update
If you prefer to edit the DEB822 format (/etc/apt/sources.list.d/debian.sources) rather than adding a classic .list file, open the file with your editor and add bookworm-backports, or its equivalent, to the Suites: line. Both formats work, but do not duplicate the same information in both places.
3. Check the availability of a more recent kernel
Now that backports are enabled, check which kernels are available.
apt policy linux-image-amd64
You should now see an extra line pointing to the backports repository, bullseye-backports, bookworm-backports or trixie-backports depending on your version, with a version number more recent than the one currently installed.
To see all the kernels available in backports, use the following command.
apt list -a linux-image-amd64
4. Install the kernel from backports
Here is the key command to install the kernel from backports. Adapt the -t option to your Debian version.
For Debian 11 (Bullseye).
sudo apt install -t bullseye-backports linux-image-amd64
For Debian 12 (Bookworm).
sudo apt install -t bookworm-backports linux-image-amd64
For Debian 13 (Trixie).
sudo apt install -t trixie-backports linux-image-amd64
The -t <backports-name> option tells APT to force the installation from the backports repository, not from the standard one.
APT will show the list of packages to install, including dependencies such as the kernel headers. Confirm with Y to start the installation.
APT downloads and installs the new kernel alongside the old one. Your current kernel stays functional until the reboot. If something goes wrong, you can still reboot on the old one.
Install the headers too, optional but recommended
If you plan to compile modules, third-party drivers, ZFS or a custom WireGuard, install the matching headers too.
For Debian 11 (Bullseye).
sudo apt install -t bullseye-backports linux-headers-amd64
For Debian 12 (Bookworm).
sudo apt install -t bookworm-backports linux-headers-amd64
For Debian 13 (Trixie).
sudo apt install -t trixie-backports linux-headers-amd64
5. Check the installation
Once the installation is finished, check that the new kernel is present.
dpkg -l | grep linux-image
You should see at least two entries.
- Your old kernel, still installed for safety
- The new kernel from backports
You can also check the contents of /boot/.
ls -lh /boot/vmlinuz-*
The new kernel should be listed with its recent version.
6. Reboot your VPS
For the new kernel to load, you need to reboot your VPS.
sudo reboot
The SSH connection will drop during the reboot. Wait 30 seconds to 1 minute before trying to reconnect.
7. Check that the new kernel is loaded
Reconnect over SSH and check the active version.
uname -r
You should now see the backports kernel version, for example 6.12.88-1~bpo12+1 or newer. Also check with the following command.
uname -a
This gives a full output including the kernel build date.
If the version shown is still the old one, this usually means the reboot has not happened yet or the latest kernel was not selected at boot. Refer to the troubleshooting section below.
Troubleshooting
❌ The server does not reboot after the update
This is rare with official backports kernels but possible, and it is the most critical scenario. You have several options.
- Open your VPS console from your client area, it displays the boot screen. Bring up the GRUB menu at boot and select a previous kernel to reboot on the old kernel still installed
- If booting remains impossible, switch to a rescue system via an ISO from the console, then mount your disk to remove the faulty kernel or regenerate the boot configuration
- As a last resort, restoring a backup made before the operation brings the VPS back
- Contact our support at any time if you have a doubt, we can guide you through the console, the rescue system or the restore
A backup made before the operation remains your best insurance if everything else fails.
❌ uname -r still shows the old version after reboot
If the reboot went fine but the kernel has not changed.
- Check that the new kernel is indeed in
/boot/
ls -lh /boot/vmlinuz-* /boot/initrd.img-*
- Check which kernels are installed on the system
dpkg -l | grep linux-image
- Try regenerating the boot configuration and reboot again
sudo update-grub
sudo reboot
- If the problem persists, it is likely tied to the cloud image bootloader, contact our support
❌ A kernel module no longer loads, ZFS or a third-party module
Third-party modules (DKMS) you installed yourself, such as ZFS, must be recompiled for the new kernel version.
- Reinstall the headers for the active kernel, adapting
bullseye-backports,bookworm-backportsortrixie-backportsto your version
sudo apt install -t bookworm-backports linux-headers-amd64
- Recompile the DKMS modules for the new kernel
sudo dkms autoinstall -k $(uname -r)
- If a specific module still causes trouble, reinstall its DKMS package, for example
sudo apt install --reinstall zfs-dkms, to force its rebuild
❌ I installed the wrong kernel, how do I go back to the old one?
No panic, the old kernel is still installed on your VPS and remains usable.
While the server is still reachable, you have not rebooted yet or the new kernel works but does not suit you, simply remove the backports kernel.
sudo apt remove linux-image-6.12.88-1~bpo12+1
sudo reboot
Adapt the version to your case. APT automatically regenerates the boot configuration and the system reboots on the old kernel still installed.
Removing this specific kernel is not enough to go back for good. The linux-image-amd64 metapackage stays pointed at backports, so a future sudo apt full-upgrade may reinstall a backports kernel. To stay permanently on the standard kernel, reinstall the metapackage from the standard repository, for example sudo apt install linux-image-amd64/bookworm, adapting the codename, or set up APT pinning giving a lower priority to backports.
If your VPS no longer reboots after installing the new kernel, open the console from your client area to bring up the GRUB menu and reboot on a previous kernel, or switch to a rescue system via an ISO to repair. A backup made before the operation remains the fallback if the repair fails.
Best practices
- Strongly recommended, make a backup of your VPS, for example a full dump via
tar,rsyncor a remote backup tool, before touching the kernel, it is your ultimate safety net if rescue is not enough - Test first on a spare VPS if you have a critical production environment
- Read the kernel release notes on
kernel.orgor the Debian backports announcements before updating - Do not remove the old kernel right away, keep it for a few days so you can go back if there is a problem
- Watch the logs after the first reboot,
dmesgandjournalctl -b, to catch any warnings - Update the backports kernel regularly, like any other package, with
sudo apt update && sudo apt full-upgrade - Do not mix backports packages with the standard system unless you have a specific need
Need help?
If your server does not reboot after a kernel update, or if you have any doubt about the procedure, our team is available. Open a ticket in the Technical department from your client area, fill the Produit lié field with the VPS concerned, and we can guide you through the console, the rescue system or restoring a backup depending on your situation.
Your Debian VPS now runs on a recent kernel, ready to make the most of the latest Linux features 🐧


