Comment 21 for bug 1646222

Revision history for this message
Steve Langasek (vorlon) wrote : Re: [Bug 1646222] Re: calculation of needed free space in /boot is inaccurate and causes refusal to upgrade

On Sat, Aug 05, 2017 at 06:32:47AM -0000, Jarno Suni wrote:
> I do not understand that why the code is used in ubuntu-release-upgrader
> only.

Because update-manager depends on python3-distupgrade and imports the size
checking code from there. It does not make sense to have two copies of this
implementation (with different bugs).

> Doesn't update-manager need to check free space before installing
> new kernels? At least some version of updater-manager may display a
> dialog like this https://i.stack.imgur.com/DppOi.png ?

Yes, and this now uses the code in ubuntu-release-upgrader instead of having
update-manager call into u-r-u's python module and u-r-u call back into
update-manager.

On Sat, Aug 05, 2017 at 07:09:28AM -0000, Jarno Suni wrote:
> If patch https://bugs.launchpad.net/ubuntu/+source/initramfs-
> tools/+bug/1678187/comments/8 is applied, there is no need for one extra
> sizeof(initramfs) in separate /boot since the new file is created in
> "${TMPDIR:-/var/tmp}" and the old one is only replaced by it in /boot.
> But still some other partition may be too full for kernel update. E.g.
> /usr/src may run out of inodes due to linux-headers-* packages.

Creating the file in /var/tmp means that it cannot atomically replace the
existing initramfs; a mv from /var/tmp to /boot then becomes a non-atomic
removal and replace, which means there is a window during which the
initramfs on disk for the default kernel will be broken and a power event
will cause the system to fail to reboot. That is not a trade-off we are
ever going to make.

The right fix for the out-of-space-on-removal problem is to fix the kernel
packaging to not regenerate initramfs on removals of linux-image-extras or
linux-image-signed.