¿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?


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.


¿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


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 )


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.