Archives For November 30, 1999

Linux Kernel

For LVM, encrypted, or limited-storage systems, you need to regularly remove old kernels to prevent your computer (/boot partition) from running out of storage space.

Removing old kernels is easy. You can do it manually, or set unattended-upgrades to do it automatically. For details, open terminal from App Launcher or via Ctrl+Alt+T shortcut keys, and follow the steps below:

Remove Automatically Installed Kernels:

1. To remove the kernels that were automatically installed via regular system updates, open terminal and run:

sudo apt autoremove --purge

It will ask you to type in user password and then remove old kernels as well as other automatically installed packages that are no longer needed.

autoremove

2. To enable automatic removing of old kernels:

Enable Kernel autoremoving may cause problems if your package management is broken, see this bug.

  • Run command to enable unattended upgrades. For Desktop Ubuntu 16.04, this is enabled by default.
    sudo dpkg-reconfigure unattended-upgrades
  • Edit the config file via command (first install gksu via sudo apt install gksu):
    gksudo gedit /etc/apt/apt.conf.d/50unattended-upgrades
  • When the file opens, uncomment the following line and change the value to true:

    //Unattended-Upgrade::Remove-Unused-Dependencies "false";

    So it looks like:

    automatic-remove

    Remove Manually Installed Kernels:

    If you install latest kernels from Kernel PPA, or build your own kernels with patches, a “purge-old-kernels” script is the best and the easiest way to remove old kernels.

    1. The script is maintained in byobu package, so first install it via:

    sudo apt install byobu

    2. Then run the script regularly to remove old kernels:

    sudo purge-old-kernels

    purge-old-kernel-script

    Remove Old Kernels via DPKG

    If your /boot partition has already full while doing an upgrade or package install, and apt (the script above uses apt) can’t remove packages due to broken dependency, here you can manually find out the old kernel packages and remove them via DPKG:

    1. Run command to check out current kernel and DON’T REMOVE it:

    uname -r

    2. List all kernels excluding the current booted:

    dpkg -l | tail -n +6 | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)

    Example output:

    rc  linux-image-4.4.0-15-generic               4.4.0-15.31                                         amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
    ii  linux-image-4.4.0-18-generic               4.4.0-18.34                                         amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
    rc  linux-image-4.6.0-040600rc3-generic        4.6.0-040600rc3.201604120934                        amd64        Linux kernel image for version 4.6.0 on 64 bit x86 SMP

    There will be three status in the listed kernel images:

    • rc: means it has already been removed.
    • ii: means installed, eligible for removal.
    • iU: DON’T REMOVE. It means not installed, but queued for install in apt.

    3. Remove old kernel images in status ii, it’s “linux-image-4.4.0-18-generic” in the example above:

    sudo dpkg --purge linux-image-4.4.0-18-generic

    If the command fails, remove the dependency packages that the output tells you via sudo dpkg --purge PACKAGE.

    And also try to remove the respective header and common header packages (Don’t worry if the command fails):

    sudo dpkg --purge linux-image-4.4.0-18-header linux-image-4.4.0-18

    Finally you may fix the apt broken dependency via command:

    sudo apt -f install

    If you’ve using Ubuntu for a period of time, you may have old kernels that are no longer useful on your system. It may be annoying to have these kernel entries in Grub boot menu. So here’s how to remove the old kernels in Ubuntu 13.10 Saucy, Ubuntu 13.04 Raring.

    The efficient way to do the job is using the Ubuntu Tweak, which lists all un-used kernels and gives an option at right-bottom corner to clean them up.

    Remove Old Kernels

    To install Ubuntu Tweak, download the DEB package in the right sidebar of this page. Then double-click to install via Ubuntu Software Center.

    At the moment, Ubuntu Tweak is not ready for Ubuntu 13.10 Saucy. So below is the command line way:

    1.) Press Ctrl+Alt+T to open terminal for running commands. Check current running kernel version.

    uname -r

    Don’t remove this kernel!

    2.) Copy and paste below command and hit run to check list of installed Kernels on your system:

    dpkg --list | grep linux-image

    3.) Find out the kernels you want to remove, and run below command to accomplish it: Change x.x.x.x to the kernel version

    sudo apt-get purge linux-image-x.x.x.x-generic