According to the Ubuntu help wiki:
You can remove old kernels with a simple autoremove command in a terminal:
sudo apt-get autoremove --purge
For some reason, this doesn't work for me, and the kernels are piling up:
apt list --installed | rg linux-image
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
linux-image-5.4.0-31-generic/focal-updates,focal-security,now 5.4.0-31.35 amd64 [installed]
linux-image-5.4.0-40-generic/focal-updates,focal-security,now 5.4.0-40.44 amd64 [installed]
linux-image-5.4.0-42-generic/focal-updates,focal-security,now 5.4.0-42.46 amd64 [installed]
linux-image-5.4.0-45-generic/focal-updates,focal-security,now 5.4.0-45.49 amd64 [installed]
linux-image-5.4.0-47-generic/focal-updates,focal-security,now 5.4.0-47.51 amd64 [installed]
linux-image-5.4.0-48-generic/focal-updates,focal-security,now 5.4.0-48.52 amd64 [installed]
linux-image-5.4.0-52-generic/focal-updates,focal-security,now 5.4.0-52.57 amd64 [installed]
linux-image-5.4.0-54-generic/focal-updates,now 5.4.0-54.60 amd64 [installed]
linux-image-5.4.0-56-generic/now 5.4.0-56.62 amd64 [installed,local]
linux-image-5.4.0-58-generic/focal-updates,focal-security,now 5.4.0-58.64 amd64 [installed]
linux-image-5.4.0-60-generic/focal-updates,focal-security,now 5.4.0-60.67 amd64 [installed]
linux-image-5.4.0-62-generic/focal-updates,focal-security,now 5.4.0-62.70 amd64 [installed]
linux-image-5.4.0-64-generic/focal-updates,now 5.4.0-64.72 amd64 [installed]
linux-image-5.4.0-65-generic/focal-updates,focal-security,now 5.4.0-65.73 amd64 [installed]
linux-image-5.4.0-66-generic/focal-updates,focal-security,now 5.4.0-66.74 amd64 [installed,automatic]
linux-image-generic/now 5.4.0.66.69 amd64 [installed,upgradable to: 5.4.0.67.70]
I'm running Kubuntu 20.04.2 on a freshly built machine, and I've only been using it for a few months after many years with Macs, so I've never consciously tried to adjust anything about the kernel.
I disabled unattended-upgrades
via the Discover store, because silent Nvidia updates were causing the display to freeze. I do, however, run sudo apt-get autoremove
after every update.
I looked for answers before posting, and found that most were many years old, though an answer to this previous question caused me to check my /etc/apt/apt.conf.d/01autoremove-kernels
file, and it seems to correctly focus on only the two latest kernels:
// DO NOT EDIT! File autogenerated by /etc/kernel/postinst.d/apt-auto-removal
APT::NeverAutoRemove
{
"^linux-.*-5\.4\.0-65-generic$";
"^linux-.*-5\.4\.0-66-generic$";
"^kfreebsd-.*-5\.4\.0-65-generic$";
"^kfreebsd-.*-5\.4\.0-66-generic$";
"^gnumach-.*-5\.4\.0-65-generic$";
"^gnumach-.*-5\.4\.0-66-generic$";
"^.*-modules-5\.4\.0-65-generic$";
"^.*-modules-5\.4\.0-66-generic$";
"^.*-kernel-5\.4\.0-65-generic$";
"^.*-kernel-5\.4\.0-66-generic$";
};
So, I'm super confused, and looking for a way to clean up the system without breaking anything, then limit the number of retained kernels to 2-3.
Thank you for reading, I would appreciate any help you can offer!
EDIT: Per the request from @user535733 here is some additional output:
sudo apt update
Hit:1 http://us.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:3 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:4 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease
Ign:5 https://apt.fury.io/flirc InRelease
Hit:6 http://ppa.launchpad.net/appimagelauncher-team/stable/ubuntu focal InRelease
Hit:7 http://download.opensuse.org/repositories/home:/ungoogled_chromium/Ubuntu_Focal InRelease
Ign:8 https://apt.fury.io/flirc Release
Ign:9 https://apt.fury.io/flirc Packages
Ign:10 https://apt.fury.io/flirc Translation-en
Hit:11 http://ppa.launchpad.net/jonaski/strawberry/ubuntu focal InRelease
Ign:12 https://apt.fury.io/flirc Translation-en_US
Get:9 https://apt.fury.io/flirc Packages
Ign:10 https://apt.fury.io/flirc Translation-en
Hit:13 http://ppa.launchpad.net/micahflee/ppa/ubuntu focal InRelease
Ign:12 https://apt.fury.io/flirc Translation-en_US
Ign:10 https://apt.fury.io/flirc Translation-en
Ign:12 https://apt.fury.io/flirc Translation-en_US
Hit:14 http://ppa.launchpad.net/mkusb/ppa/ubuntu focal InRelease
Ign:10 https://apt.fury.io/flirc Translation-en
Ign:12 https://apt.fury.io/flirc Translation-en_US
Ign:10 https://apt.fury.io/flirc Translation-en
Ign:12 https://apt.fury.io/flirc Translation-en_US
Ign:10 https://apt.fury.io/flirc Translation-en
Ign:12 https://apt.fury.io/flirc Translation-en_US
Ign:10 https://apt.fury.io/flirc Translation-en
Ign:12 https://apt.fury.io/flirc Translation-en_US
Fetched 6,518 B in 2s (3,153 B/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
sudo apt upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
sudo apt autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
uname -r
5.4.0-67-generic
EDIT 2: After updating to include the additional output, another kernel was added (linux-image-5.4.0-67-generic
). I noticed that both linux-image-5.4.0-66-generic
and linux-image-5.4.0-67-generic
are marked as automatic, while all previous versions are marked manual. Based on that timing, I'm guessing that updating via the 'update all' button in the Discover store has somehow been causing kernels to be marked as manually installed (along with headers and modules). It looks like the only two installed via cli are correctly marked as automatically installed (but haven't been subject to autoremove because they are the two newest versions).
I guess the answer is to use apt-mark auto
on the versions that were installed via the Discover store, and stick with cli from here, thank you to everyone who helped!