Public bug reported: Yesterday I experienced a "no space available" condition on /boot during do-release-upgrade of a server from trusty to xenial.
Excerpt from the apport log (it contains somewhat sensitive information so It'll need cleaning to be disclosed): Sætter linux-image-extra-4.4.0-140-generic (4.4.0-140.166) op ... run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-140-generic /boot/vmlinuz-4.4.0-140-generic run-parts: executing /etc/kernel/postinst.d/dkms 4.4.0-140-generic /boot/vmlinuz-4.4.0-140-generic run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-140-generic /boot/vmlinuz-4.4.0-140-generic update-initramfs: Generating /boot/initrd.img-4.4.0-140-generic cat: skrivefejl: Ikke mere plads på enheden update-initramfs: failed for /boot/initrd.img-4.4.0-140-generic with 1. run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1 dpkg: fejl under behandling af pakken linux-image-extra-4.4.0-140-generic (--configure): underproces installerede post-installation-script returnerede afslutningsstatus 1 Translations from Danish: "Sætter <package> op ..." = "Setting up <package>" "skrivefejl: Ikke mere plads på enheden" = "write error: No space available on device". Before do-release-upgrade was satisfied to commence with the upgrade I had to free space on /boot manually. I did this by explicitly removing old kernels using dpkg -r, because apt-get autoremove wanted to upgrade to a new 3.13.0-163 kernel (system was running 126) before removing old ones, which it couldn't. Afterwards I assured that only files related to the current 126 and the previous 125 kernel was present in /boot, by removing all other image packages and manually removing some initrd (maybe others also) files relating to those still present in /boot. Even though the release upgrade was now satisfied to continue it still failed during the initrd generation for the kernels because of too little space available on /boot. Subsequent inspection of /boot showed the new vmlinuz-4.4.0-140 kernel was installed but the initrd was obviously missing. Still there were now files related to older 3.13.0-{105,107,128,129} kernels which had somehow been generated during the upgrade. I removed those files again (several ~8 MiB initrd files, a full initrd also for 3.13 is >30 MiB) and also the now installed 163 kernel which freed enough space to let "apt upgrade" configure the new kernel and generate an initrd. I am a bit puzzled by the older kernels still having files generated in /boot. The system had linux-headers packages installed for some of those but I guess this shouldn't be enough to warrant space being used in /boot? At least after a normal upgrade cycle they are still not back (header packages still being installed) but this could in theory be handled different from the release-upgrade. I can see from https://bugs.launchpad.net/ubuntu/+source/update- manager/+bug/1646222 that some changes were done to the estimation algorithm in 2016/2017 to lower its estimates. Just to confirm what version the system was running during release-upgrade the apt log show that last upgrade of python3-distupgrade was at 2017-06-29 to 1:0.220.9: Log started: 2017-06-29 13:52:42 Gør klar til at udpakke .../python3-distupgrade_1%3a0.220.9_all.deb ... Udpakker python3-distupgrade (1:0.220.9) over (1:0.220.8) ... ** Affects: ubuntu-release-upgrader (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1808151 Title: Inadequate /boot space requirement estimation To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1808151/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs