¿Cómo forzar fsck en cada arranque - todos los sistemas de archivos (relevantes)?

14

Estoy trabajando con una PC sin ventilador (cientos de ellas, de hecho) que tiene particiones Debian 6 y 3 (FAT y 2x ext2). El sistema no tiene un botón de encendido como tal, por lo que la mayoría de las personas tienden a tirar del enchufe para 'apagarlo' en lugar de init 0 (o equivalente). Como resultado, los sistemas de archivos acumulan errores con bastante rapidez.

Intenté usar 'shutdown -rF' para forzar fsck, pero esto no parece funcionar. Me pregunto si hay alguna manera de decirle al sistema que verifique cada punto de montaje / FS antes de montarlos.

Intenté configurar el parámetro fsck en / etc / fstab. Esto normalmente me da un 'Errores encontrados. Ejecute fsck manualmente 'mensaje.

¿Hay otras opciones para probar?

ethrbunny
fuente
1
A) ¿Quiénes fueron sus usuarios? B) ¿Podría haber agregado un botón destacado de "Apagar" que siempre estaba visible en pantalla? C) Alternativamente, ¿podría haber educado a sus usuarios? D) ¿Por qué las máquinas no tenían botones de encendido en el frente?
unforgettableidSupportsMonica
Esta pregunta es casi un duplicado de unix.stackexchange.com/questions/180488/… por el mismo usuario.
unforgettableidSupportsMonica

Respuestas:

16

In /etc/init.d/checkfs.shes la línea if [ -f /forcefsck ] || grep -s -w -i "forcefsck" /proc/cmdline, por lo que proporcionar forcefscken la línea de comando del kernel o generar un /forcefsckarchivo en el apagado debería causar un fsck en el próximo reinicio.

Para evitar ejecuciones manuales de fsck, solicite fsckintentar corregir automáticamente los errores con la -yopción descomentando y cambiando no a yesla siguiente entrada / etc / default / rcS, después de la edición debería verse así:

# automatically repair filesystems with inconsistencies during boot
FSCKFIX=yes

Una opción (forcefsck o FSCKFIX) no implica la otra.

gris grisáceo finito
fuente
¿Manejará esto la condición 'Ejecutar fsck manualmente'?
ethrbunny
De hecho, leí demasiado rápido, actualicé mi respuesta.
finit graygreen
He configurado FSCKFIX = yes y el valor en checkfs.sh. En ninguno de los casos, fsck se ejecutó cuando reinicié (a través de init 6). Debo estar perdiendo algo aquí.
ethrbunny
No cambie nada checkfs.sh, solo edite / etc / defaults / rcS y ejecútelo touch /forcefsckantes de reiniciar. El último comando debe ejecutarse antes de cada reinicio o justo después de arrancar, pero el script de inicio fsck está listo.
finit graygreen
Hmm ... no tuve suerte. Todavía veo el mensaje 'montar el sistema de archivos sin verificar' seguido de muchos errores 'eliminar referencia de inodo'. Hasta ahora, cambiar / etc / fstab ha sido lo único que ha tenido algún efecto. No estoy seguro de lo que estoy haciendo de modo que sus sugerencias no funcionen.
ethrbunny
8

Agregue el fsck.mode=forceparámetro Kernel en su gestor de arranque. Agregue esta opción a la GRUB_CMDLINE_LINUX_DEFAULT=variable dentro /etc/default/grub. Como root, genere un nuevo archivo de configuración de grub:

[root@host]# grub-mkconfig -o /boot/grub/grub.cfg

Este parámetro tiene el mismo efecto que crear el forcefsckarchivo dentro de la raíz del punto de montaje.

La solución de usar el checkfs.shscript se ajustará mejor a Debian, pero no debería funcionar en otras distribuciones


fuente
7

Estoy editando mi respuesta:

El comando es:

sudo tune2fs -c 1 /dev/sdX

de acuerdo con el argumento manpages -c para tune2fs cuenta el número de instancias de montajes para una partición. Por lo tanto, 1 obliga a verificar el fs después de cada instancia de montaje.

( http://man7.org/linux/man-pages/man8/tune2fs.8.html )

xitij
fuente
2
Solo un comando no es suficiente en la mayoría de los casos, escriba al menos una explicación mínima también.
peterh - Restablece a Monica