Otro título sugerido: cómo forzar un fsck durante el próximo reinicio en Linux.
Otro: cómo saber cuando te toca el próximo FSCK o chequeo automático del sistema de archivos en Linux.
Post cortito y linuxero al mango, para la posteridad principalmente por que todo lo que sigue me lo sé de memoria, o por si en el futuro me da un ACV y mi memoria deja de ser la que era. Una breve pasada rasante en modo reseña acerca de cómo entender las comprobaciones de integridad que hace Linux (da lo mismo cual sea tu distribución o versión) sobre el sistema de archivos (da lo mismo cualquiera sea tu sistema de archivos).
Siempre que algo involucre comprobaciones de integridad del sistema de archivos, lo primero que vas a necesitar conocer es cuándo se ejecutó una por última vez. Para ello: tune2fs -l (es una L minúscula) a la partición de tu interés. En el ejemplo que sigue, nvme0n1p5 es la partición sobre la que pretendo trabajar:
# tune2fs -l /dev/nvme0n1p5 | grep Last
La última vez que se ejecutó fsck sobre el sistema de archivos ETX4 de este Linux fue el 18 de agosto
Con esta información en la mano, el próximo paso es verificar cuando le toca una comprobación automática nuevamente:
# tune2fs -l /dev/nvme0n1p5 | grep Max
Maximum mount count: -1
Mount count -1, el próximo fsck está desactivado
En el ejemplo de arriba, fsck automático cada N cantidad de reinicios se encuentra desactivado. Si quisieras activarlo cada -por ejemplo- 10 reinicios (esto es, 10 remounts, usualmente durante un reinicio), nuevamente tirando de tune2fs:
# tune2fs -c 10 /dev/nvme0n1p5
tune2fs 1.45.5 (07-Jan-2020)
Setting maximal mount count to 10
Otro dato no menor que puede interesarte también es cuantas veces se montó el sistema de archivos de tu partición desde que existe:
# tune2fs -l /dev/nvme0n1p5 | grep Mount
Mount count: 291
Es decir: la partición raíz de la computadora que estoy usando para ejemplificar ya fue montada y desmontada 291 veces, presumible pero no necesariamente, durante 291 reinicios.
Si entendiste lo anterior y si no también, el próximo paso es entender cómo funciona la columna de pasadas de fsck definida en el /etc/fstab de tu linux y que puede tomar tres valores:
- Un cero: 0 – fsck nunca ejecutará una comprobación automática sobre el sistema de archivos.
- Un uno: 1 – fsck ejecutará una comprobación automática una vez que se cumplan la cantidad de remounts establecida en la partición mediante tune2fs
- Un dos: 2 – fsck ejecutará una comprobación automática sobre la partición pero únicamente luego de haber terminado la comprobación sobre las particiones marcadas con un 1.
Ejemplo donde la partición / se verifica primero, /var se verifica segundo y /mnt nunca:
UUID=c57c0003-6658-46c7-ad1b-0b8963a321b1 / ext4 errors=remount-ro 0 1
UUID=c57c0003-6658-46c7-ad2b-0b8223a321b1 /var ext4 errors=remount-ro 0 2
UUID=c57c0003-6658-46c7-ad2b-287deebb732d /mnt ext3 errors=remount-ro 0 0
Si querés hacer algún cambio sobre esta configuración basta con que edites tu /etc/fstab según tus necesidades.
Si llegaste hasta acá ya tenés claro cuándo y cómo se va a ejecutar un chequeo de tu sistema de archivos, además de como modificar esta configuración para adecuarla a tus necesidades. Incluso así, puede que necesites forzar una comprobación automática durante el próximo reinicio y esto se puede conseguir de varias formas. La más rápida es poner un archivo en la partición raíz con nombre forcefsck:
# touch /forcefsck
Haciendo únicamente ese cambio, durante el próximo reinicio se ejecutará una comprobación automática sobre todos los sistemas de archivos siguiendo el orden preestablecido en tu fstab. Luego del reinicio y comprobación automática, el archivo forcefsck se eliminará automáticamente.
Si por el contrario necesitás hacer un check sobre el filesystem en cada reboot invariablemente, toca tirar de tune2fs nuevamente, con la opción C:
# tune2fs -c 1 /dev/nvme0n1p5
Y antes de que vengas a preguntar pelotudeces, me anticipo: no, poner un forcefsck en el root de otras particiones no fuerza una comprobación durante el próximo reinicio. (Ya intenté y fue en vano).
¿Te sirvió? De nada.