Disk Space full while doing apt-get operation on Ubuntu 14.04

9,624

Solution 1

You're right, you have plenty of disk space on / but you quickly fill up /boot when you try to unpack the new image, which is why your apt-get install -f command fails.

The problematic packages are in your dpkg output, and the apt-get output.

You can try using aptitude install -f to see if one of the choices will resolve the issue for you (probably by removing those packages), or you can try apt-get purge linux-image-extra-3.13.0-61-generic linux-image-extra-3.13.0-62-generic linux-image-generic to remove the broken, and partially configured packages installed.

If you're desperate enough to use dpkg be sure to pay attention to the messages and remove dependencies on a package before trying to remove a package. From your command above, you should probably remove linux-image-extra-3.13.0-55-generic before trying to remove linux-image-3.13.0-55-generic if you want to go that route.

Take extra care to make sure you don't remove the running kernel 3.13.0-45-generic.

Then you can apt-get autoremove and apt-get purge the remaining unneeded kernel packages, and then install the later kernel it looks like you were trying to install.

Solution 2

Your root file system (/) has plenty of free space, however /boot does not.

Take a closer look at the error output from the sudo apt-get install -f command:

Unpacking linux-image-3.13.0-62-generic (3.13.0-62.102) ...
dpkg: error processing archive /var/cache/apt/archives/linux-image-3.13.0-62-generic_3.13.0-62.102_amd64.deb (--unpack):
 cannot copy extracted data for './boot/vmlinuz-3.13.0-62-generic' to '/boot/vmlinuz-3.13.0-62-generic.dpkg-new': failed to write (No space left on device)

It's trying to place a file in /boot and that file system doesn't have enough space for it.

Your options:

  1. Remove files from /boot that are no longer needed
  2. Add more space to /boot. This one may be difficult to do since LVM isn't being used. If this is a virtual machine perhaps not.
  3. Ditch /boot altogether. In most situations having a separate file system for /boot isn't necessary. (before considering this take a look at @Kassandry's answer)

If you decide to get rid of the /boot file system you can do the following.

NOTE: Be very careful if you use the following instructions:

mkdir ~/copy-of-boot-files
sudo rsync -aHS /boot/ ~/copy-of-boot-files/
sudo umount /boot
sudo rsync -AHS ~/copy-of-boot-files/ /boot/
sudo sed -i 's/.*\/boot.*/#&/' /etc/fstab

Again: be very careful if you do this. Make sure you have Ubuntu installation media around so you can boot into Linux Rescue mode to repair any damage you may cause. You could render your system unbootable if this isn't done properly.

Basically you'd create a copy of /boot's contents, unmount /boot, copy the contents back, and disable /boot from being mounted during start up.

An additional note: You may need to update your bootloader configuration (e.g. update-grub, not sure what that version of Ubuntu uses). Also, if this is a paravirtualised guest under Xen you need to make sure the domU configuration knows to retrieve the kernel from the new location (sda3 instead of sda1).

Share:
9,624

Related videos on Youtube

Bhaskar
Author by

Bhaskar

Updated on September 18, 2022

Comments

  • Bhaskar
    Bhaskar over 1 year

    Im Trying to install new software on my Ubuntu 14.04, which is running

    $ uname -r
    3.13.0-45-generic
    

    There are old kernals installed on my machine

    $ dpkg --list | grep linux-image
    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
    ii  linux-image-3.13.0-45-generic       3.13.0-45.74                     amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
    ii  linux-image-3.13.0-55-generic       3.13.0-55.94                     amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
    ii  linux-image-3.13.0-57-generic       3.13.0-57.95                     amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
    ii  linux-image-3.13.0-58-generic       3.13.0-58.97                     amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
    ii  linux-image-3.13.0-59-generic       3.13.0-59.98                     amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
    ii  linux-image-3.13.0-61-generic       3.13.0-61.100                    amd64        Linux kernel image for version 3.13.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
    ii  linux-image-extra-3.13.0-45-generic 3.13.0-45.74                     amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
    ii  linux-image-extra-3.13.0-55-generic 3.13.0-55.94                     amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
    ii  linux-image-extra-3.13.0-57-generic 3.13.0-57.95                     amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
    ii  linux-image-extra-3.13.0-58-generic 3.13.0-58.97                     amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
    ii  linux-image-extra-3.13.0-59-generic 3.13.0-59.98                     amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
    iF  linux-image-extra-3.13.0-61-generic 3.13.0-61.100                    amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
    iU  linux-image-extra-3.13.0-62-generic 3.13.0-62.102                    amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
    iU  linux-image-generic                 3.13.0.62.69                     amd64        Generic Linux kernel image
    

    When i am trying to Purge them using below command

    $ sudo apt-get purge linux-image-3.13.0-24-generic
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    You might want to run 'apt-get -f install' to correct these:
    The following packages have unmet dependencies:
     linux-image-extra-3.13.0-62-generic : Depends: linux-image-3.13.0-62-generic but it is not going to be installed
     linux-image-generic : Depends: linux-image-3.13.0-62-generic but it is not going to be installed
    E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
    

    Im getting above error.

    While doing auto remove getting error

    $ sudo apt-get autoremove
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    You might want to run 'apt-get -f install' to correct these.
    The following packages have unmet dependencies:
     linux-image-extra-3.13.0-62-generic : Depends: linux-image-3.13.0-62-generic but it is not installed
     linux-image-generic : Depends: linux-image-3.13.0-62-generic but it is not installed
    E: Unmet dependencies. Try using -f.
    

    And if i run force install it is saying no space left on device ..

    $ sudo apt-get install -f
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Correcting dependencies... Done
    The following packages were automatically installed and are no longer required:
      linux-headers-3.13.0-55 linux-headers-3.13.0-55-generic
      linux-headers-3.13.0-57 linux-headers-3.13.0-57-generic
      linux-headers-3.13.0-58 linux-headers-3.13.0-58-generic
      linux-headers-3.13.0-59 linux-headers-3.13.0-59-generic
      linux-image-3.13.0-55-generic linux-image-3.13.0-57-generic
      linux-image-3.13.0-58-generic linux-image-3.13.0-59-generic
      linux-image-extra-3.13.0-55-generic linux-image-extra-3.13.0-57-generic
      linux-image-extra-3.13.0-58-generic linux-image-extra-3.13.0-59-generic
    Use 'apt-get autoremove' to remove them.
    The following extra packages will be installed:
      linux-image-3.13.0-62-generic
    Suggested packages:
      fdutils linux-doc-3.13.0 linux-source-3.13.0 linux-tools
    The following NEW packages will be installed:
      linux-image-3.13.0-62-generic
    0 upgraded, 1 newly installed, 0 to remove and 48 not upgraded.
    5 not fully installed or removed.
    Need to get 15.2 MB of archives.
    After this operation, 42.5 MB of additional disk space will be used.
    Do you want to continue? [Y/n] y
    Get:1 http://mirrors.voxel.net/ubuntu/ trusty-updates/main linux-image-3.13.0-62-generic amd64 3.13.0-62.102 [15.2 MB]
    Fetched 15.2 MB in 4s (3,237 kB/s)                        
    (Reading database ... 243451 files and directories currently installed.)
    Preparing to unpack .../linux-image-3.13.0-62-generic_3.13.0-62.102_amd64.deb ...
    Done.
    Unpacking linux-image-3.13.0-62-generic (3.13.0-62.102) ...
    dpkg: error processing archive /var/cache/apt/archives/linux-image-3.13.0-62-generic_3.13.0-62.102_amd64.deb (--unpack):
     cannot copy extracted data for './boot/vmlinuz-3.13.0-62-generic' to '/boot/vmlinuz-3.13.0-62-generic.dpkg-new': failed to write (No space left on device)
    No apport report written because the error message indicates a disk full error
                                                                                  dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
    Examining /etc/kernel/postrm.d .
    run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-62-generic /boot/vmlinuz-3.13.0-62-generic
    run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-62-generic /boot/vmlinuz-3.13.0-62-generic
    Errors were encountered while processing:
     /var/cache/apt/archives/linux-image-3.13.0-62-generic_3.13.0-62.102_amd64.deb
    E: Sub-process /usr/bin/dpkg returned an error code (1)
    

    My disk utilisation:

    $ df -k
    Filesystem     1K-blocks    Used Available Use% Mounted on
    /dev/sda3      955997652 5241596 911812456   1% /
    none                   4       0         4   0% /sys/fs/cgroup
    udev             4066160      12   4066148   1% /dev
    tmpfs             815404     512    814892   1% /run
    none                5120       0      5120   0% /run/lock
    none             4077016       0   4077016   0% /run/shm
    none              102400       0    102400   0% /run/user
    /dev/sda1         190346  152098     24199  87% /boot
    

    How can i make space on my Ubuntu so that i can install new applications on it ?

    Please help...