[Bug 798414] Re: update-initramfs should produce a more helpful error when there isn't enough free space

Jarno Suni 798414 at bugs.launchpad.net
Sat Dec 24 23:25:15 UTC 2016


"a more helpful error" that the title of this bug report calls for would
not free you from the need to remove kernels manually.

I made a script called linux-purge to make it easy to remove extra
kernels even in tricky conditions:
https://www.bountysource.com/issues/38300038-feature-request-the-
command-should-work-like-this (It is designed to handle dependency
problems and even problem running out of inodes - that may occur when
installing a kernel - when using --fix option.)

As for preventing system from getting full of kernels automatically, unattended-upgrades provides an adequate solution for most cases. You can configure it in Ubuntu 16.04 like this:
Add line 

Unattended-Upgrade::Remove-Unused-Dependencies "true";

in /etc/apt/apt.conf.d/50unattended-upgrades

(since unattended-upgrades is enabled by default in 16.04; the
configuration acts as if running "apt-get autoremove" periodically.)

The default setting in 16.04 is

Unattended-Upgrade::Remove-New-Unused-Dependencies "true";

but that does not work in some cases (Bug #1624644); the former setting
overrides it.

Alternatively, putting "linux-purge --yes --keep 1" as a cron job or alike could do automatic kernel purging, (if no other process has locked dpkg at the time of calling it).
It has some differences to the unattended-upgrades way:
- It works in 12.04 and 14.04, too. (unattended-upgrades cannot remove manually installed kernels that will be around, if user installs kernel using e.g. update-manager; Bug #1439769.)
- The number of kernels to keep is configurable. It keeps the given number of nearest older kernels of each installed kernel update series, e.g. linux-generic and linux-generic-lts-xenial, not necessarily the installed kernels with greatest versions. (You could use --auto-only to keep
manually installed kernels, too, but you probably would not want to use it in 12.04 and 14.04.)
- Current kernel will never be removed. (Bug #1615381)
- It removes configuration files, too. (i.e. it purges)
- It only removes versioned kernel packages whose name start by linux-.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to initramfs-tools in Ubuntu.
https://bugs.launchpad.net/bugs/798414

Title:
  update-initramfs should produce a more helpful error when there isn't
  enough  free space

Status in initramfs-tools:
  Confirmed
Status in initramfs-tools package in Ubuntu:
  In Progress

Bug description:
  Binary package hint: initramfs-tools

  When generating a new initramfs there is no check for available free
  space, subsequently its possible for update-initramfs to fail due to a
  lack of free space.  This is resulting in package installation
  failures for initramfs-tools.  For example:

  Setting up initramfs-tools (0.98.8ubuntu3) ...
  update-initramfs: deferring update (trigger activated)
  Processing triggers for initramfs-tools ...
  update-initramfs: Generating /boot/initrd.img-2.6.38-8-generic

  gzip: stdout: No space left on device
  E: mkinitramfs failure cpio 141 gzip 1
  update-initramfs: failed for /boot/initrd.img-2.6.38-8-generic
  dpkg: error processing initramfs-tools (--configure):
   subprocess installed post-installation script returned error exit status 1

  WORKAROUND:

  Remove unused kernels using computer janitor (not in repositories for
  14.04 or later) or manually free space on your partition containing
  the /boot file system.

  See instructions here
  https://help.ubuntu.com/community/RemoveOldKernels

To manage notifications about this bug go to:
https://bugs.launchpad.net/initramfs-tools/+bug/798414/+subscriptions



More information about the foundations-bugs mailing list