apt – No hay suficiente espacio libre en disco al actualizar

Pregunta:

Recibo un error en el actualizador de software cuando intento realizar 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 sudo apt-get clean en la Terminal pero todavía recibo el mensaje. Todas las páginas que leo parecen ser para Ubuntuers experimentados. Estoy ejecutando Ubuntu 12.10. Quiero actualizar a 13.04 pero entiendo que primero tengo que terminarlos.

Este es el resultado de escribir 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

Respuesta:

Nota: esta respuesta está destinada a ser más una 'explicación' que proporcionar la forma mejor / más fácil de eliminar los núcleos antiguos. Para conocer la forma mejor / más fácil de eliminar los núcleos antiguos, revise las otras respuestas.

De acuerdo, desde la salida de /etc/fstab que publicó, parece que su /boot está montado en una partición separada, y desde la salida de df -h , esa partición está llena. Esto se debe a que hay instalados núcleos antiguos que no son necesarios; puede saberlo mirando la salida de dpkg -l | grep linux-image que publicaste, donde puedes ver más de una " linux-image " con diferentes versiones. Necesitamos eliminar las versiones antiguas.

Primero, quiero que ejecute el comando uname -r en una terminal, esto le mostrará la versión del kernel que está usando actualmente. Nunca queremos eliminar esa versión del kernel. El comando dirá algo como esto 3.5.0- 26 -generic . ¡Toma nota de ese número, 26 ! Los siguientes comandos asumirá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 caracteres x son números. Entonces, en tu caso, debido a que tienes 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í. Pero hay una manera de hacer todo esto a través de un comando. El comando es este ( ¡NO EJECUTE EL COMANDO TODAVÍA! Lea 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 entre paréntesis. No incluí las versiones 25, 26 y 28 por las siguientes razones:

  • ¡No incluyó 26 obviamente porque esa es la versión del kernel que está ejecutando actualmente! Esa es la versión que obtuvimos del comando uname -r , ¿recuerdas? ¡No queremos quitar eso nunca!
  • No incluyó 28 porque ese es el que su actualización estaba tratando de actualizar (puede saberlo por el estado iF siguiente, lo que significa que está "medio configurado").
  • No incluyó 25 porque suele ser una buena práctica dejar al menos una versión antigua. Entonces, dado que 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 montón de líneas y eventualmente volverá al símbolo del sistema (en su caso, matty@matty-G41M-ES2L:~$ ), con suerte sin errores. Cuando termine, haga df -h y observe 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 antes. Ahora puede continuar con su actualización nuevamente.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım