No hay suficiente espacio libre en disco al actualizar

136

Recibo un error en el actualizador de software cuando intento hacer mis actualizaciones diarias. dice:

The upgrade needs a total of 25.3 M free space on disk '/boot'.
Please free at least an additional 25.3 M of disk space on '/boot'.
Empty your trash and remove temporary packages of former installations 
using 'sudo apt-get clean'.

Intenté escribir en sudo apt-get clean en la Terminal, pero sigo recibiendo el mensaje. Todas las páginas que leo parecen ser para Ubuntuers con experiencia. Estoy ejecutando Ubuntu 12.10. Quiero actualizar a 13.04 pero entiendo que tengo que terminar primero.

Este es el resultado de escribir en cat /etc/fstab en la Terminal:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=fa55c082-112d-4b10-bcf3-e7ffec6cebbc /boot           ext2    defaults        0       2
/dev/mapper/ubuntu-swap_1 none            swap    sw              0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
matty@matty-G41M-ES2L:~$ 

Salida de df -h :

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu-root  915G   27G  842G   4% /
udev                     984M  4.0K  984M   1% /dev
tmpfs                    397M  1.1M  396M   1% /run
none                     5.0M     0  5.0M   0% /run/lock
none                     992M  1.8M  990M   1% /run/shm
none                     100M   52K  100M   1% /run/user
/dev/sda1                228M  222M     0 100% /boot
matty@matty-G41M-ES2L:~$ 

Y dpkg -l | grep linux-image da:

ii linux-image-3.5.0-17-generic 3.5.0-17.28 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-18-generic 3.5.0-18.29 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-19-generic 3.5.0-19.30 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-21-generic 3.5.0-21.32 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-22-generic 3.5.0-22.34 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-23-generic 3.5.0-23.35 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-24-generic 3.5.0-24.37 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-25-generic 3.5.0-25.39 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-26-generic 3.5.0-26.42 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
iF linux-image-3.5.0-28-generic 3.5.0-28.48 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
    
pregunta carmatt95 22.05.2013 - 06:30

8 respuestas

186
  

Nota: esta respuesta pretende ser más una 'explicación' que proporcionar la mejor / más fácil manera de eliminar kernels viejos. Para saber la mejor y más fácil manera de eliminar kernels viejos, revise las otras respuestas.

De acuerdo, así que a partir del resultado de /etc/fstab que publicó, parece que su /boot está montado en una partición separada, y desde la salida de < strong> df -h , esa partición está llena. Esto se debe a que hay kernels viejos instalados que no son necesarios; Puedes verlo al mirar el resultado de dpkg -l | grep linux-image que publicaste, donde puedes ver más de una " imagen en Linux " con diferentes versiones. Necesitamos eliminar las versiones anteriores.

Primero, quiero que ejecutes el comando uname -r en un terminal, esto te mostrará la versión del kernel que estás usando actualmente. No queremos eliminar esa versión del kernel. El comando dirá algo como esto 3.5.0-26-generic . Tome nota de ese número, 26 ! Los siguientes comandos supondrán que ese es el kernel que está ejecutando.

El comando para eliminar una versión anterior del kernel es:

sudo apt-get purge linux-image-x.x.x-xx-generic

... donde los x caracteres son números. Entonces, en su caso, debido a que tiene muchas versiones antiguas (17, 18, 19, etc.), tendríamos que ejecutar este comando para cada una de las versiones, así:

  • sudo apt-get purge linux-image-3.5.0-17-generic
  • sudo apt-get purge linux-image-3.5.0-18-generic
  • sudo apt-get purge linux-image-3.5.0-19-generic

... y así sucesivamente. Pero, hay una manera de hacer todo esto a través de un comando. El comando es este ( ¡NO EJECUTES EL COMANDO TODAVÍA! Lee lo siguiente. ):

sudo apt-get purge linux-image-3.5.0-{17,18,19,21,22,23,24}-generic

Este comando eliminará las versiones mencionadas en los corchetes. No incluí las versiones 25, 26 y 28 por las siguientes razones:

  • ¡No incluyó obviamente 26 porque esa es la versión del núcleo que está ejecutando actualmente! Esa es la versión que obtuvimos del comando uname -r , ¿recuerdas? ¡Nunca queremos eliminar eso!
  • No incluyó 28 porque esa era la actualización en la que intentaba actualizar (puede verlo a partir del estado iF siguiente, lo que significa que está "medio configurada").
  • No incluyó 25 porque generalmente es una buena práctica dejar al menos una versión anterior. Entonces, como está ejecutando 26, mantendremos 25, por lo que no lo incluiremos en el comando anterior.

Entonces, si el último número en uname -r es 26 (o 28, o incluso 25), entonces es seguro ejecutar el comando anterior. Ingrese su contraseña cuando se le solicite y escriba y cuando se le solicite. Esto mostrará un grupo de líneas, y eventualmente volverá al indicador de comando (en su caso, matty@matty-G41M-ES2L:~$ ), con suerte sin errores. Cuando haya terminado, haz df -h y mira la última línea, la que comienza con /dev/sda1 . Debería encontrar que ahora tiene más espacio y que el porcentaje utilizado es menos del 100% como lo era antes. Ahora puede continuar con su actualización nuevamente.

    
respondido por el Alaa Ali 23.05.2013 - 09:57
42

Puedes instalar Ubuntu-Tweak.Para instalar, sigue los siguientes pasos:

Abre la terminal. Agregue el repositorio requerido con el comando:

sudo add-apt-repository ppa:tualatrix/ppa

Actualice la lista de software con el comando:

sudo apt-get update

Finalmente, instale Ubuntu Teak con el comando:

sudo apt-get install ubuntu-tweak

Después de eso, abra el tablero y escriba "ubuntu tweak".

Y luego vaya a janitor tab y seleccione Apps , Personal y System casillas de verificación y haga clic en el botón limpiar en la parte inferior derecha.

    
respondido por el αғsнιη 11.06.2014 - 17:15
14

@Lekensteyn ha señalado una forma rápida de eliminar todos los núcleos y encabezados que no se usan (excluyendo el kernel actual en ejecución) en su respuesta a la pregunta Cómo puedo liberar más espacio en / ¿arranque? :

sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print }' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')") 

Esto debería liberar suficiente espacio para que pueda actualizar.

    
respondido por el marianoju 30.09.2015 - 10:00
6

Aquí hay un informe de error sobre el problema: enlace

Siéntete libre de decir si "este error también te afecta", para que reciba más atención.

    
respondido por el alci 29.10.2014 - 10:38
3

En mi sistema Ubuntu casero sigo un método similar al publicado, pero es un poco más simple y despeja más espacio en los encabezados del kernel inc, etc.

  1. Compruebo qué núcleo estoy usando, ya que es imprescindible no interferir con eso.

    uname -a
    
  2. Luego, miro / boot con el objetivo de eliminar todos los archivos relacionados con kernel que están no relacionados directamente con el núcleo en ejecución. Esto me da una lista de todas las versiones del kernel que quiero eliminar, por ejemplo: 3.5.0-17, 3.5.0-18

    ls -l /boot
    
  3. Ahora tomo la primera versión del kernel en mi lista de purga y encuentro todos los paquetes relacionados con ella.

    dpkg -l | grep 3.5.0-17
    
  4. Purgarlos del sistema

    sudo apt-get purge <list of packages separated by spaces>
    
  5. vuelve a 3 y selecciona la siguiente versión del kernel en mi lista de depuración.

  6. Hecho

respondido por el Kiat 18.07.2014 - 11:59
1

Recibí este error, este artículo me ayudó.

Utilicé df -h para identificar que el arranque estaba lleno, uname -r para la versión, luego usé la cadena purge listada arriba para eliminar kernels viejos. purga única de kernel funcionó, multi no lo hizo (para mí).

Encontré los archivos en las ventanas; No pude borrarlos, tuve que usar la terminal, pero me mostró las versiones anteriores que tenía allí.

No tengo idea de por qué / boot (sda2) está particionado y por qué es tan pequeño. pero ahora puedo usar el actualizador Ubuntu nuevamente.

Tuve un pequeño éxito con sudo apt-get update , sudo apt-get upgrade , sudo apt-get clean , también probé el software gratuito Bleachbit. Use la cadena de purga pero no en su versión actual. Espero que esto ayude a alguien.

    
respondido por el Brian P 13.08.2014 - 04:36
0

¿Tiene instalados algunos paquetes antiguos de imágenes del kernel que no están siendo utilizados? Esos pueden ocupar espacio en / boot. Recomiendo revisar el conjunto de paquetes kernel instalados con un comando como el siguiente:

dpkg -l "linux-image*" | grep "^i"

Eso debería proporcionar una visión general del conjunto de paquetes de imágenes del kernel instalados. Para aquellos paquetes linux-image que no se utilizan y que no se espera que sean necesarios para fines de recuperación, por ejemplo, p. Me gusta mantener al menos una versión del kernel detrás de la versión activa instalada, para la recuperación; de lo contrario, podría eliminar cualquiera de esos paquetes no utilizados, utilizando su herramienta de empaquetado favorita, como aptitude.

También recomendaría echar un vistazo a los encabezados inux , linux-image-extras (si corresponde), también linux-source , y linux-tools paquetes, que pueden instalarse junto con los paquetes linux-image no utilizados.

    
respondido por el Sean Champ 23.05.2013 - 09:27
0

Dudo que muchos, si es que hay alguno, se toparán con este problema, pero lo presentaré aquí para documentación en caso de que alguien lo necesite.

Mi problema es que estaba compilando kernels personalizados diferentes hasta que me quedé sin espacio. La forma en que tenía que limpiar el espacio era ingresar a cada directorio kernel en el que había estado trabajando y ejecutar un sudo make clean .

  • $ cd /usr/src Directorio donde el origen del kernel es
  • $ cd linux-image-custom_kernel_name
  • $ sudo make clean
respondido por el Jacksonkr 10.11.2016 - 15:41

Lea otras preguntas en las etiquetas