De alguna manera mi sistema está en apuros.
$ 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.2.0-29 linux-headers-3.2.0-29-generic
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
linux-headers-3.2.0-80
The following NEW packages will be installed
linux-headers-3.2.0-80
0 to upgrade, 1 to newly install, 0 to remove and 251 not to upgrade.
3 not fully installed or removed.
Need to get 0 B/11.7 MB of archives.
After this operation, 56.4 MB of additional disk space will be used.
Do you want to continue [Y/n]?
(Reading database ... 1255202 files and directories currently installed.)
Unpacking linux-headers-3.2.0-80 (from .../linux-headers-3.2.0-80_3.2.0-80.116_all.deb) ...
dpkg: error processing /var/cache/apt/archives/linux-headers-3.2.0-80_3.2.0-80.116_all.deb (--unpack):
unable to create `/usr/src/linux-headers-3.2.0-80/include/linux/sunrpc/gss_err.h.dpkg-new' (while processing `./usr/src/linux-headers-3.2.0-80/include/linux/sunrpc/gss_err.h'): 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)
Errors were encountered while processing:
/var/cache/apt/archives/linux-headers-3.2.0-80_3.2.0-80.116_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Pero:
us@desktop:/var/log$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 20158332 16166516 2967816 85% /
udev 4026512 4 4026508 1% /dev
tmpfs 807064 996 806068 1% /run
none 5120 0 5120 0% /run/lock
none 4035308 128 4035180 1% /run/shm
/dev/sda4 904990760 51533960 807485908 6% /home
Perplejo!
us@desktop:~$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 1281120 1278499 2621 100% /
udev 1006628 507 1006121 1% /dev
tmpfs 1008827 445 1008382 1% /run
none 1008827 3 1008824 1% /run/lock
none 1008827 6 1008821 1% /run/shm
/dev/sda4 57466880 110192 57356688 1% /home
Ah, entonces la tabla de inodo está llena. Nunca tuve eso antes, ¿qué causa eso entonces?
filesystem
df
artfulrobot
fuente
fuente
df -i
?sudo find / -type f -size -1k -ls
para comprobar los archivos de tamaño inferior a 1 KB y retirar si no es necesario ..Respuestas:
Como se muestra en la salida de
df -i
, está ejecutando un número muy bajo de inodos libres/
y, por lo tanto,dpkg
no puede completar la operación.La mayoría de las veces, esto es causado por numerosos archivos pequeños creados en algún lugar (sin intención) en el sistema de archivos.
Puede verificar los archivos de tamaño inferior a 1 KB y comenzar a eliminarlos si no es necesario:
Del mismo modo, puede verificar aumentando el tamaño de los archivos hasta llegar a la raíz del problema.
fuente
Todo el crédito a @heemayl por los consejos que dieron como resultado esta respuesta. He aceptado esa respuesta, pero aquí están los detalles de cómo la arreglé, en caso de que sea útil para otros.
El problema fue causado por una tabla de inodo completa. Según tengo entendido, hay dos partes en un sistema de archivos, inodos y espacio. Los inodes están relacionados con la cantidad de archivos, donde el espacio es lo grande que son. Mi sistema estaba repleto de millones de pequeños archivos causados por Ubuntu que no eliminaba los núcleos antiguos. Como el sistema ha funcionado durante mucho tiempo, tenía más de 40 núcleos, incl. archivos de encabezado, instalados, lo cual es demasiado para un sistema de archivos de una partición de sistema de 20 Gb.
Esto significaba que dpkg no podía completar una instalación, necesitaba más espacio para completar su trabajo, pero desafortunadamente eso tampoco significaba que podía crear espacio usando apt para desinstalar cosas.
La solución que encontré fue mover todos los
/usr/src/
archivos a mi otra partición, dejando solo un enlace simbólico a los archivos en el fs completo:Después de hacer esto pude dejar que apt complete:
Y después de eso pude desinstalar todos los núcleos más antiguos que no necesitaba, liberando espacio, y luego pude mover la carpeta src hacia atrás.
fuente
/
. Los números de inodo identifican de manera única "inodes". El directorio raíz es un inodo (número 2 en ext4), como lo es cualquier otro archivo o directorio. Los inodos se indexan en una tabla de búsqueda , que puede llenarse. Cuando se llena, te quedas sin inodos.