Siempre había pensado que cuando los comandos du -hsx . y df -h . reportaban tamaños significativamente diferentes, estábamos ante un filesystem corrrupto, y que en estos casos la solución pasaba por hacer un fsck de dicho filesystem.

Pues bien, hoy me he encontrado con los mismos síntomas, pero en esta ocasión el problema no era un filesystem corrupto sino algo bastante más simple. Algo tan tonto como que el punto de montaje de mi filesystem no estaba vacío y además contenía folders que se llamaban igual que los folders que contenía el filesytem que estaba montando encima.

Como no hay mal que por bien no venga, el problema me ha servidor para aprender diferentes formas de forzar un fsck en un folder que no podemos desmontar…

Opcion 1:

Forzar un fsck en el siguiente reboot (hay hasta 5 maneras diferentes de hacerlo).

Shutdown

shutdown -rF now

Esto realizar un fsck en tiempo de arranque en todas las particiones.

tune2fs

Podemos modificar los valores de máximo numero de montajes sin realizar fsck o tiempo máximo entre fscks.

debugfs -w -R dirty /dev/hda3

Interesantísima utilidad que nos permite entre otras muchas cosas marcar el filsystem como dirty para forzar un fsck en el siguiente reboot. También nos permite hacer un undelete de un fichero o directorio borrado en filesystems tipo ext3.

.autofsck

Consiste en crear un fichero .autofsck en el filesystem en el que queremos forzar el fsck. Sólo funciona en algunas distribuciones.

Fecha BIOS

Modificando la fecha en la BIOS** No lo he probado, y a primera vista parece feo de narices pero por lo visto funciona.

Opcion 2

Arrancar el sistema afectado con un livecd y hacer el fsck desde allí.

En mi caso el sistema tenia todas las particiones en LVM por lo que antes he tenido que hacer un vgscan y luego un vgchange -a y para poder montar el logical volume desde la Knoppix.

En cualquier caso nada de esto era en realidad necesario pues como ya he dicho al principio, al filesystem no le pasaba nada.