Archive for mayo 11th, 2013

Problemas de espacio, liberar Inodos al 100% en Linux

Hoy he conseguido librar una pequeña batalla con uno de mis portátiles donde tengo instalado Xubuntu 12.04, me he picado a actualizarlo a la versión 13.04, pero el caso que desde hace un tiempo, no me estaba permitiendo actualizar nada, no me había puesto a investigar, porque en el día a día, no me estaba molestando, hasta que hoy he tenido un poco de tiempo y he dicho, hasta aquí hemos llegado.

El problema es que estaba soltándome un chorizo, sobre problemas de espacio:

No se escribió ningún informe «apport» porque ya se ha alcanzado el valor de «MaxReports»
No se pudo crear `/usr/src/linux-headers-3.2.0-41/arch/blackfin/mach-bf538/include/mach/blackfin.h.dpkg-new’ (mientras se procesaba `./usr/src/linux-headers-3.2.0-41/arch/blackfin/mach-bf538/include/mach/blackfin.h’): No queda espacio en el dispositivo

La coña es que espacio se tiene y de sobra:

root@hp-ermigue:/usr/src# df -m
S.ficheros 1M-bloques Usados Disponibles Uso% Montado en
/dev/sda1 18773 6590 11230 37% /
udev 1001 1 1001 1% /dev
tmpfs 404 1 403 1% /run
none 5 0 5 0% /run/lock
none 1009 1 1009 1% /run/shm
/dev/sda5 54445 20902 30777 41% /home

Pero me dio la picada y dije, si esto falla por un problema de espacio y espacio se tiene, seguro que me estoy topando con otra cosa, mas compleja y mas por culera, y efectivamente, era así, en este caso es que estaba la partición raíz al 100% de los inodos usados. Para comprobar el estado de los inodos por partición se usa el comando: du -i. Aquí ya se puede ver que esta solucionado:

root@hp-ermigue:/usr/src# df -i
S.ficheros Nodos-i NUsados NLibres NUso% Montado en
/dev/sda1 1222992 582452 640540 48% /
udev 216481 509 215972 1% /dev
tmpfs 220373 426 219947 1% /run
none 220373 4 220369 1% /run/lock
none 220373 3 220370 1% /run/shm
/dev/sda5 3540208 22269 3517939 1% /home

Normalmente esto es debido a que existen ciertas rutas, donde se aloja un gran número de ficheros, cuando uno administra un servidor LAMP (Linux, Apache, MySQL y PHP), el fallo suele estar siempre en la partición /var, ya sea por alguna «carpeta» de logs o similar. En mi caso no es así, este portátil lo tengo para experimentar, skype y ver vídeos online. Por lo que me puse a buscar y rebuscar ficheros y no había forma. Me tope con un buen script en stackoverflow, que me dío un poco de luz:

#!/bin/bash
# count_em - count files in all subdirectories under current directory.
echo 'echo $(ls -a "$1" | wc -l) $1' >/tmp/count_em_$$
chmod 700 /tmp/count_em_$$
find . -mount -type d -print0 | xargs -0 -n1 /tmp/count_em_$$ | sort -n
rm -f /tmp/count_em_$$

Con este script lo que se consigue un listado de las carpetas donde contiene mayor numero de ficheros, esto me chivo, que mi problema estaba en la carpeta /usr/src/linux*header*. Luego caí y era evidente, no me gusta borrar viejos kernels y el no hacer una limpieza, implica que luego te haga sufrir malas pasadas. Por lo que me puse a borrar viejos kernels y directorios inservibles y buala, problema resuelto, vuelvo a tener espacio de inodos y poder seguir con las actualizaciones.

Ahora el siguiente paso, actualizar la versión de Xubuntu 12.04 a 13.04