10

I have a 16.04 installation with a weird problem

sudo apt autoremove

removes old kernels except the current and a previous, but does not remove old headers.

On other 16.04 installations it removes both.

How can I find out what is wrong?

I've spent a lot of time on learning how kernel autoremove works, but did not find any differences between working and non-working machines.

pilot6@Pilot6:~$ cat /etc/apt/apt.conf.d/01autoremove-kernels
// DO NOT EDIT! File autogenerated by /etc/kernel/postinst.d/apt-auto-removal
APT::NeverAutoRemove
{
   "^linux-image-4\.4\.0-38-generic$";
   "^linux-image-4\.4\.0-42-generic$";
   "^linux-image-4\.4\.0-43-generic$";
   "^linux-headers-4\.4\.0-38-generic$";
   "^linux-headers-4\.4\.0-42-generic$";
   "^linux-headers-4\.4\.0-43-generic$";
   "^linux-image-extra-4\.4\.0-38-generic$";
   "^linux-image-extra-4\.4\.0-42-generic$";
   "^linux-image-extra-4\.4\.0-43-generic$";
   "^linux-signed-image-4\.4\.0-38-generic$";
   "^linux-signed-image-4\.4\.0-42-generic$";
   "^linux-signed-image-4\.4\.0-43-generic$";
   "^kfreebsd-image-4\.4\.0-38-generic$";
   "^kfreebsd-image-4\.4\.0-42-generic$";
   "^kfreebsd-image-4\.4\.0-43-generic$";
   "^kfreebsd-headers-4\.4\.0-38-generic$";
   "^kfreebsd-headers-4\.4\.0-42-generic$";
   "^kfreebsd-headers-4\.4\.0-43-generic$";
   "^gnumach-image-4\.4\.0-38-generic$";
   "^gnumach-image-4\.4\.0-42-generic$";
   "^gnumach-image-4\.4\.0-43-generic$";
   "^.*-modules-4\.4\.0-38-generic$";
   "^.*-modules-4\.4\.0-42-generic$";
   "^.*-modules-4\.4\.0-43-generic$";
   "^.*-kernel-4\.4\.0-38-generic$";
   "^.*-kernel-4\.4\.0-42-generic$";
   "^.*-kernel-4\.4\.0-43-generic$";
   "^linux-backports-modules-.*-4\.4\.0-38-generic$";
   "^linux-backports-modules-.*-4\.4\.0-42-generic$";
   "^linux-backports-modules-.*-4\.4\.0-43-generic$";
   "^linux-tools-4\.4\.0-38-generic$";
   "^linux-tools-4\.4\.0-42-generic$";
   "^linux-tools-4\.4\.0-43-generic$";
};
/* Debug information:
# dpkg list:
rc  linux-image-3.11.0-17-generic               3.11.0-17.31                                                amd64        Linux kernel image for version 3.11.0 on 64 bit x86 SMP
rc  linux-image-3.11.0-18-generic               3.11.0-18.32                                                amd64        Linux kernel image for version 3.11.0 on 64 bit x86 SMP
rc  linux-image-3.11.0-19-generic               3.11.0-19.33                                                amd64        Linux kernel image for version 3.11.0 on 64 bit x86 SMP
rc  linux-image-3.13.0-24-generic               3.13.0-24.47                                                amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-3.13.0-27-generic               3.13.0-27.50                                                amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-3.13.0-29-generic               3.13.0-29.53                                                amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-3.13.0-30-generic               3.13.0-30.55                                                amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-3.13.0-32-generic               3.13.0-32.57                                                amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-3.13.0-33-generic               3.13.0-33.58                                                amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-3.13.0-34-generic               3.13.0-34.60                                                amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-3.13.0-35-generic               3.13.0-35.62                                                amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-3.13.0-36-generic               3.13.0-36.63                                                amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-3.13.0-39-generic               3.13.0-39.66                                                amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-3.16.0-25-generic               3.16.0-25.33~14.04.2                                        amd64        Linux kernel image for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-3.16.0-28-generic               3.16.0-28.38~14.04.1                                        amd64        Linux kernel image for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-3.16.0-29-generic               3.16.0-29.39~14.04.1                                        amd64        Linux kernel image for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-3.16.0-30-generic               3.16.0-30.40~14.04.1                                        amd64        Linux kernel image for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-3.16.0-33-generic               3.16.0-33.44~14.04.1                                        amd64        Linux kernel image for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-3.16.0-34-generic               3.16.0-34.47~14.04.1                                        amd64        Linux kernel image for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-3.16.0-36-generic               3.16.0-36.48~14.04.1                                        amd64        Linux kernel image for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-3.16.0-37-generic               3.16.0-37.51~14.04.1                                        amd64        Linux kernel image for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-3.16.0-38-generic               3.16.0-38.52~14.04.1                                        amd64        Linux kernel image for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-3.16.0-39-generic               3.16.0-39.53~14.04.1                                        amd64        Linux kernel image for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-3.16.0-40-generic               3.16.0-40.54~14.04.1                                        amd64        Linux kernel image for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-3.19.0-21-generic               3.19.0-21.21~14.04.1                                        amd64        Linux kernel image for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-3.19.0-22-generic               3.19.0-22.22~14.04.1                                        amd64        Linux kernel image for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-3.19.0-23-generic               3.19.0-23.24~14.04.1                                        amd64        Linux kernel image for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-3.19.0-25-generic               3.19.0-25.26~14.04.1                                        amd64        Linux kernel image for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-3.19.0-26-generic               3.19.0-26.28~14.04.1                                        amd64        Linux kernel image for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-3.19.0-28-generic               3.19.0-28.30~14.04.1                                        amd64        Linux kernel image for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-3.19.0-30-generic               3.19.0-30.34~14.04.1                                        amd64        Linux kernel image for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-3.19.0-31-generic               3.19.0-31.36~14.04.1                                        amd64        Linux kernel image for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-3.19.0-32-generic               3.19.0-32.37~14.04.1                                        amd64        Linux kernel image for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-3.19.0-33-generic               3.19.0-33.38~14.04.1                                        amd64        Linux kernel image for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-4.2.0-18-generic                4.2.0-18.22~14.04.1                                         amd64        Linux kernel image for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-4.2.0-19-generic                4.2.0-19.23~14.04.1                                         amd64        Linux kernel image for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-4.2.0-21-generic                4.2.0-21.25~14.04.1                                         amd64        Linux kernel image for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-4.2.0-22-generic                4.2.0-22.27~14.04.1                                         amd64        Linux kernel image for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-4.2.0-23-generic                4.2.0-23.28~14.04.1                                         amd64        Linux kernel image for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-4.2.0-25-generic                4.2.0-25.30~14.04.1                                         amd64        Linux kernel image for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-4.2.0-27-generic                4.2.0-27.32~14.04.1                                         amd64        Linux kernel image for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-4.2.0-30-generic                4.2.0-30.36~14.04.1                                         amd64        Linux kernel image for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-4.2.0-32-generic                4.2.0-32.37~14.04.1                                         amd64        Linux kernel image for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-4.2.0-34-generic                4.2.0-34.39~14.04.1                                         amd64        Linux kernel image for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-10-generic                4.4.0-10.25                                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-11-generic                4.4.0-11.26                                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-12-generic                4.4.0-12.28                                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-13-generic                4.4.0-13.29~14.04.1                                         amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-14-generic                4.4.0-14.30~14.04.2                                         amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-15-generic                4.4.0-15.31~14.04.1                                         amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-18-generic                4.4.0-18.34~14.04.1                                         amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-21-generic                4.4.0-21.37                                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-22-generic                4.4.0-22.40                                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-24-generic                4.4.0-24.43                                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-28-generic                4.4.0-28.47                                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-31-generic                4.4.0-31.50                                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-34-generic                4.4.0-34.53                                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-36-generic                4.4.0-36.55                                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-38-generic                4.4.0-38.57                                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-42-generic                4.4.0-42.62                                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-43-generic                4.4.0-43.63                                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-3.11.0-17-generic         3.11.0-17.31                                                amd64        Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP
rc  linux-image-extra-3.11.0-18-generic         3.11.0-18.32                                                amd64        Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP
rc  linux-image-extra-3.11.0-19-generic         3.11.0-19.33                                                amd64        Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP
rc  linux-image-extra-3.13.0-24-generic         3.13.0-24.47                                                amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-extra-3.13.0-27-generic         3.13.0-27.50                                                amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-extra-3.13.0-29-generic         3.13.0-29.53                                                amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-extra-3.13.0-30-generic         3.13.0-30.55                                                amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-extra-3.13.0-32-generic         3.13.0-32.57                                                amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-extra-3.13.0-33-generic         3.13.0-33.58                                                amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-extra-3.13.0-34-generic         3.13.0-34.60                                                amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-extra-3.13.0-35-generic         3.13.0-35.62                                                amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-extra-3.13.0-36-generic         3.13.0-36.63                                                amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-extra-3.13.0-39-generic         3.13.0-39.66                                                amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-extra-3.13.0-40-generic         3.13.0-40.69                                                amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
rc  linux-image-extra-3.16.0-25-generic         3.16.0-25.33~14.04.2                                        amd64        Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-extra-3.16.0-28-generic         3.16.0-28.38~14.04.1                                        amd64        Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-extra-3.16.0-29-generic         3.16.0-29.39~14.04.1                                        amd64        Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-extra-3.16.0-30-generic         3.16.0-30.40~14.04.1                                        amd64        Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-extra-3.16.0-33-generic         3.16.0-33.44~14.04.1                                        amd64        Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-extra-3.16.0-34-generic         3.16.0-34.47~14.04.1                                        amd64        Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-extra-3.16.0-36-generic         3.16.0-36.48~14.04.1                                        amd64        Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-extra-3.16.0-37-generic         3.16.0-37.51~14.04.1                                        amd64        Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-extra-3.16.0-38-generic         3.16.0-38.52~14.04.1                                        amd64        Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-extra-3.16.0-39-generic         3.16.0-39.53~14.04.1                                        amd64        Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-extra-3.16.0-40-generic         3.16.0-40.54~14.04.1                                        amd64        Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
rc  linux-image-extra-3.19.0-21-generic         3.19.0-21.21~14.04.1                                        amd64        Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-extra-3.19.0-22-generic         3.19.0-22.22~14.04.1                                        amd64        Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-extra-3.19.0-23-generic         3.19.0-23.24~14.04.1                                        amd64        Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-extra-3.19.0-25-generic         3.19.0-25.26~14.04.1                                        amd64        Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-extra-3.19.0-26-generic         3.19.0-26.28~14.04.1                                        amd64        Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-extra-3.19.0-28-generic         3.19.0-28.30~14.04.1                                        amd64        Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-extra-3.19.0-30-generic         3.19.0-30.34~14.04.1                                        amd64        Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-extra-3.19.0-31-generic         3.19.0-31.36~14.04.1                                        amd64        Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-extra-3.19.0-32-generic         3.19.0-32.37~14.04.1                                        amd64        Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-extra-3.19.0-33-generic         3.19.0-33.38~14.04.1                                        amd64        Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-extra-4.2.0-18-generic          4.2.0-18.22~14.04.1                                         amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-extra-4.2.0-19-generic          4.2.0-19.23~14.04.1                                         amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-extra-4.2.0-21-generic          4.2.0-21.25~14.04.1                                         amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-extra-4.2.0-22-generic          4.2.0-22.27~14.04.1                                         amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-extra-4.2.0-23-generic          4.2.0-23.28~14.04.1                                         amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-extra-4.2.0-25-generic          4.2.0-25.30~14.04.1                                         amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-extra-4.2.0-27-generic          4.2.0-27.32~14.04.1                                         amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-extra-4.2.0-30-generic          4.2.0-30.36~14.04.1                                         amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-extra-4.2.0-32-generic          4.2.0-32.37~14.04.1                                         amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-extra-4.2.0-34-generic          4.2.0-34.39~14.04.1                                         amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-10-generic          4.4.0-10.25                                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-11-generic          4.4.0-11.26                                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-12-generic          4.4.0-12.28                                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-13-generic          4.4.0-13.29~14.04.1                                         amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-14-generic          4.4.0-14.30~14.04.2                                         amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-15-generic          4.4.0-15.31~14.04.1                                         amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-18-generic          4.4.0-18.34~14.04.1                                         amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-21-generic          4.4.0-21.37                                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-22-generic          4.4.0-22.40                                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-24-generic          4.4.0-24.43                                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-28-generic          4.4.0-28.47                                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-31-generic          4.4.0-31.50                                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-34-generic          4.4.0-34.53                                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-36-generic          4.4.0-36.55                                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rH  linux-image-extra-4.4.0-38-generic          4.4.0-38.57                                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-42-generic          4.4.0-42.62                                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-43-generic          4.4.0-43.63                                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-generic                         4.4.0.43.45                                                 amd64        Generic Linux kernel image
# list of installed kernel packages:
4.4.0-38-generic 4.4.0-38.57
4.4.0-42-generic 4.4.0-42.62
4.4.0-43-generic 4.4.0-43.63
# list of different kernel versions:
4.4.0-43.63
4.4.0-42.62
4.4.0-38.57
# Installing kernel: 4.4.0-38.57 (4.4.0-38-generic)
# Running kernel: 4.4.0-43.63 (4.4.0-43-generic)
# Last kernel: 4.4.0-43.63
# Previous kernel: 4.4.0-42.62
# Kernel versions list to keep:
4.4.0-38.57
4.4.0-42.62
4.4.0-43.63
# Kernel packages (version part) to protect:
4\.4\.0-38-generic
4\.4\.0-42-generic
4\.4\.0-43-generic
*/

pilot6@Pilot6:~$ aptitude search '^linux* ?installed'
i A linux-base                      - Linux image base package                  
i   linux-firmware                  - Firmware for Linux kernel drivers         
i   linux-generic                   - Complete Generic Linux kernel and headers 
i A linux-headers-4.4.0-34          - Header files related to Linux kernel versi
i A linux-headers-4.4.0-34-generic  - Linux kernel headers for version 4.4.0 on 
i A linux-headers-4.4.0-36          - Header files related to Linux kernel versi
i A linux-headers-4.4.0-36-generic  - Linux kernel headers for version 4.4.0 on 
i A linux-headers-4.4.0-38          - Header files related to Linux kernel versi
i A linux-headers-4.4.0-38-generic  - Linux kernel headers for version 4.4.0 on 
i A linux-headers-4.4.0-42          - Header files related to Linux kernel versi
i A linux-headers-4.4.0-42-generic  - Linux kernel headers for version 4.4.0 on 
i A linux-headers-4.4.0-43          - Header files related to Linux kernel versi
i A linux-headers-4.4.0-43-generic  - Linux kernel headers for version 4.4.0 on 
i A linux-headers-generic           - Generic Linux kernel headers              
i A linux-image-4.4.0-42-generic    - Linux kernel image for version 4.4.0 on 64
i A linux-image-4.4.0-43-generic    - Linux kernel image for version 4.4.0 on 64
i A linux-image-extra-4.4.0-42-gene - Linux kernel extra modules for version 4.4
i A linux-image-extra-4.4.0-43-gene - Linux kernel extra modules for version 4.4
i A linux-image-generic             - Generic Linux kernel image                
i   linux-libc-dev                  - Linux Kernel Headers for development      
i   linux-sound-base                - base package for ALSA and OSS sound system

pilot6@Pilot6:~$ 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.

After the previous run of apt autoremove all linux-image packages have been removed except 4.4.0-42 and 43, but the headers are kept.

This is the debug-autoremove.txt from the affected installation.

https://dl.dropboxusercontent.com/u/89297281/debug-autoremove.txt

This is the output from the same command from a non-affected machine.

https://dl.dropboxusercontent.com/u/89297281/debug-autoremove-good.txt

Here is the first one with sudo.

http://paste.ubuntu.com/23343952/

  • +1 Would be interested in answers too, for me it removes only the linux-extra package, and not even the main image... For now I've just resorted to removing them manually since it's just two packages. – fkraiem Oct 11 '16 at 15:40
  • Do you have a test case? If so, could you post the contents of /etc/apt/apt.conf.d/01autoremove-kernels and the output of aptitude search '^linux* ?installed' . Just to confirm that all kernels are auto installed. – user.dz Oct 14 '16 at 22:32
  • @user.dz I added the information. – Pilot6 Oct 15 '16 at 9:56
  • @Pilot6, Could you generate debug from both machines (w/ & w/out problem) using apt-get -o Debug::pkgAutoRemove=1 -s autoremove 2> debug-autoremove.txt (no need for sudo, it's a simulation -s). I got a test case for old headers, but I don't have multiple installations to compare. I expect, it's a dependency problem with virtual package (virtualbox 5 in my case) Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-36-generic:amd64 4.4.0-36.55 which it's only difference I could find comparing to linux-image. – user.dz Oct 18 '16 at 5:36
  • @user.dz I added the debug info from both machines. – Pilot6 Oct 18 '16 at 6:58
3
+250

autoremove will remove any package that:

  • is auto installed
  • is not included in APT::NeverAutoRemove APT configuration
  • don't have any dependents

Here is the debuging steps we followed

  1. Checked auto/manual installation

    aptitude search '^linux* ?installed'
    
  2. Checked currently declared versions under APT::NeverAutoRemove

    cat /etc/apt/apt.conf.d/01autoremove-kernels
    
  3. Checked dependency

    apt-cache rdepends linux-headers-4.4.0-38-generic
    

    brings nothing but

    sudo apt-get -o Debug::pkgAutoRemove=1 -s autoremove 2> debug-autoremove.txt
    
    ...
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-43-lowlatency:amd64 4.4.0-43.63
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-43-generic:amd64 4.4.0-43.63
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-42-lowlatency:amd64 4.4.0-42.62
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-42-generic:amd64 4.4.0-42.62
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-38-lowlatency:amd64 4.4.0-38.57
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-38-generic:amd64 4.4.0-38.57
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-36-lowlatency:amd64 4.4.0-36.55
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-36-generic:amd64 4.4.0-36.55
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-34-lowlatency:amd64 4.4.0-34.53
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-34-generic:amd64 4.4.0-34.53
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-31-lowlatency:amd64 4.4.0-31.50
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-31-generic:amd64 4.4.0-31.50
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-28-lowlatency:amd64 4.4.0-28.47
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-28-generic:amd64 4.4.0-28.47
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-24-lowlatency:amd64 4.4.0-24.43
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-24-generic:amd64 4.4.0-24.43
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-22-lowlatency:amd64 4.4.0-22.40
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-22-generic:amd64 4.4.0-22.40
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-21-lowlatency:amd64 4.4.0-21.37
    Following dep: virtualbox-5.0:amd64 5.0.20-106931~Ubuntu~wily Recommends linux-headers:amd64 , provided by linux-headers-4.4.0-21-generic:amd64 4.4.0-21.37
    ...
    

    So it's a dependency issue through the virtual package linux-headers

I'm in doubt here, It seems to me as bug.

  • Either in autoremove function, it can't deal with virtual package dependency.
  • Or in virtualbox package, that may need another way to declare dependency to Linux headers.
1

I generally do not trust much in automatically running system maintenance actions when it comes to important topics like kernel management. As I can see from your comments, there seems to be an interference with VirtualBox 5. So I recommend the most reliable way to clean up old kernels.

Check which kernel versions are installed : dpkg --get-selections | grep linux

To check especially for headers : dpkg --get-selections | grep linux-headers

Remove the ones you want to get rid of (replace * with the kernel version number) :

sudo apt purge linux-headers-* linux-headers-*-generic linux-image-*-generic linux-image-extra-*-generic linux-signed-image-*-generic

This is of course not an explanation what went wrong and why the automatic headers removal does not work when running the apt autoremove command, but in the end it is a solution to achieve what you want and it additionally makes sure that everything is cleaned up properly.

  • This is what I am doing now ;-) The question is what was the problem and how to fix it. – Pilot6 Oct 18 '16 at 15:44
  • @Pilot6 : You said that VirtualBox is the root cause, so when they cannot fix it in one of the next versions, you can consider switching to KVM (qemu / virt-manager). That is what I did some time ago ... not a single problem since and the performance is great ! :) – cl-netbox Oct 18 '16 at 15:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.