El fin de semana pasado estaba actualizando el ordenador de sobremesa cuando ¡zas! me dice que no se puede actualizar, se pone una señal de dirección prohibida en la barra de direcciones y me devuelve un error como el siguiente al intentar actualizar:
(Reading database … 437051 files and directories currently installed.)Unpacking linux-headers-3.2.0-33-generic-pae (from …/linux-headers-3.2.0-33-generic-pae_3.2.0-33.52_i386.deb) …dpkg: error processing /var/cache/apt/archives/linux-headers-3.2.0-33-generic-pae_3.2.0-33.52_i386.deb (–unpack):unable to create `/usr/src/linux-headers-3.2.0-33-generic-pae/include/config/usb/gspca/sonixb.h.dpkg-new’ (while processing `./usr/src/linux-headers-3.2.0-33-generic-pae/include/config/usb/gspca/sonixb.h’): No space left on deviceNo apport report written because the error message indicates a disk full errordpkg-deb: error: subprocess paste was killed by signal (Broken pipe)Errors were encountered while processing:
El error anterior está copiado de la fuente, pero era similar. Trate de utilizar todo esto:
sudo apt-get clean sudo apt-get autoclean sudo apt-get autoremove sudo apt-get update sudo apt-get upgrade sudo apt-get -f install
Pero nada, el error persistía y no me dejaba hacer nada, ni desinstalar núcleos ni nada y, lo peor, es que me decía que el disco duro estaba lleno ¿de verdad? ¿me tomas el pelo? Al final tuve que seguir el proceso descrito en la página que pongo como fuente pero con variaciones, por eso solo os pongo el enlace directo al final:
Hice un df -i y me devolvía más o menos esto:
Solo que el /dev/sda6 estaba al 100% de su capacidad y no al 90% como en la imagen. ¿Cómo? Si suelo limpiar el equipo de vez en cuando… Quería saber qué era lo que está ocupando tanto espacio, así que ejecuté el siguiente comando:
sudo du -h /* | grep '[0-9]M'
Que me devolvió una lista interminable de archivos, pero en mi caso (a diferencia de lo que le pasa a la fuente) había un montón de archivos de núcleos viejos y obsoletos que no debían estar ahí…
Así que me propuse eliminar los archivos de esos núcleos que se suponían ya eliminados, con lo que tenía que tener cuidado de no eliminar los núcleos actuales, así que lo primero fue ejecutar un comando para saber qué núcleos tenía instalados en el sistema:
sudo dpkg --get-selections | grep linux-image
Me devolvía que tenía tres núcleos instalados el 3.5.0-41… el mismo en 42 y en 43.
Y luego fui borrando las carpetas (y los archivos que contenían) que no necesitaba:
sudo rm -r /usr/src/linux-headers-3.2.*
sudo rm -r /usr/src/linux-headers-3.5.0-3*
sudo rm -r /usr/src/linux-headers-3.5.0-40*
El asterisco lo uso para que borre todas aquellas carpetas cuya dirección empiece por lo que tengo puesto antes del asterisco. Si os fijáis, las carpertas que son 41, 42 y 43 no las puede borrar, pero si las habría borrado si hubiese hecho:
sudo rm -r /usr/src/linux-headers-3.5.0-4*
Así que tened cuidado al usar el asterisco a la hora de borrar archivos con la consola.
Tras todo eso hice un df -i y me salió:
A partir de aquí ya me funcionó el sudo apt-get -f install y pude actualizar el sistema sin problemas.
Es curioso que Ubuntu tenga este tipo de errores, que en mi caso ya he visto un par de veces, estas son las cosas que le dan miedo a los usuarios nóveles y debería de ser una de las cosas que deberían pulir…
Fuente: Ask Ubuntu.