How to Delete Old Unused Kernels in Debian and Ubuntu?

The kernel is the core component of a Linux-based operating system, responsible for managing system resources and communicating with hardware devices. When new kernel versions are released, they include important bug fixes, security patches, and performance improvements. However, multiple kernel versions accumulating over time can consume valuable disk space and potentially slow down system performance.

Deleting old unused kernels is an essential maintenance task that helps keep your Debian and Ubuntu systems running smoothly while freeing up storage space and maintaining optimal security.

Understanding Kernels in Debian and Ubuntu

A kernel is the central component of an operating system that manages system resources and provides abstraction between hardware and software. It controls memory management, process scheduling, input/output operations, and security functions.

Both Debian and Ubuntu use Linux kernels as their foundation. Debian uses a customized Linux kernel adapted for its package management system, while Ubuntu uses its own kernel version based on upstream Linux community code. When you install kernel updates, new entries are created in your bootloader configuration, giving you multiple kernel options during system startup.

Why Remove Old Kernels?

  • Storage Space Old kernels consume valuable disk space over time

  • Boot Performance Multiple kernel options can slow down boot times

  • Security Risk Older kernels may contain known vulnerabilities

  • System Conflicts Old kernels can cause driver conflicts or dependency issues

Checking Installed Kernels

Before removing kernels, identify which versions are currently installed on your system.

List All Installed Kernel Images

dpkg --list | grep linux-image

This displays all installed kernel images with version numbers, package names, and descriptions.

Check Current Running Kernel

uname -r

Important: Never remove the currently running kernel version shown by this command.

View Boot Directory Contents

ls /boot/

This shows all files in the /boot directory, including kernel images and related files.

Removing Old Kernels

Remove a Single Kernel Version

To remove a specific kernel version, use the following steps

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

Example: To remove kernel version 5.4.0-42-generic

sudo apt-get purge linux-image-5.4.0-42-generic

Remove Multiple Kernel Versions

Use wildcards to remove multiple versions matching a pattern

sudo apt-get purge linux-image-5.4.0-*

This removes all kernel packages starting with linux-image-5.4.0-.

Automatic Cleanup (Recommended Method)

The safest approach is using the automatic removal command, which keeps only the current and previous kernel versions

sudo apt-get autoremove --purge

This command automatically identifies which kernels can be safely removed without damaging the system.

What Happens During Kernel Removal

When you remove an old kernel, the following occurs

  • All kernel files are deleted from /boot directory

  • Associated kernel modules are removed from /lib/modules

  • Bootloader configuration is updated automatically

  • Related configuration files and dependencies are purged

Best Practices

Practice Description
Keep 2-3 Recent Kernels Maintain current and 1-2 previous versions for fallback options
Regular Maintenance Clean up old kernels monthly or after major updates
Use autoremove Prefer automated cleanup over manual removal
Verify Current Kernel Always check running kernel version before removal

Conclusion

Regularly removing old unused kernels is a crucial maintenance task that frees up disk space, improves boot performance, and enhances system security. Using the apt-get autoremove --purge command provides the safest approach to kernel cleanup while maintaining system stability.

Updated on: 2026-03-17T09:01:38+05:30

28K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements