Tengo un servidor Ubuntu 12.04 sin cabeza en un centro de datos a 1500 millas de distancia. Dos veces ahora al reiniciar el sistema decidió que tenía que fsck. Desafortunadamente, Ubuntu ejecutó fsck en modo interactivo, por lo que tuve que pedirle a alguien en mi centro de datos que revise, conecte una consola y presione la tecla Y. ¿Cómo lo configuro para que fsck se ejecute en modo no interactivo en el momento del arranque con el indicador -y
o -p
(alias -a
)?
Si entiendo el proceso de arranque de Ubuntu correctamente, init invoca mountall que a su vez invoca fsck. Sin embargo, no veo ninguna forma de configurar cómo se invoca fsck. es posible?
(Para evitar una sugerencia; soy consciente de que puedo usarla tune2fs -i 0 -c 0
para evitar fscks periódicos. Eso puede ayudar un poco, pero necesito que el sistema intente volver a funcionar incluso si tenía una razón real para fsck, por ejemplo, después de un corte de energía .)
En respuesta a las preguntas de seguimiento, aquí están los detalles pertinentes de mi / etc / fstab. No creo haber editado esto en absoluto de lo que Ubuntu puso allí.
UUID=3515461e-d425-4525-a07d-da986d2d7e04 / ext4 errors=remount-ro 0 1
UUID=90908358-b147-42e2-8235-38c8119f15a6 /boot ext4 defaults 0 2
UUID=01f67147-9117-4229-9b98-e97fa526bfc0 none swap sw 0 0
/etc/default/rcS
no son realmente válidas en 2019, con Ubuntu 16 y Ubuntu 18 ahora usando systemd. No conozco la historia completa de systemd, pero lafsck.repair
opción de línea de comando de configuración / kernel parece relevante. Los documentos actualmente dicen que su valor predeterminado espreen
, lo que significa-p
. También se puede configuraryes
para-y
./etc/default/grub
puede ser el lugar para configurar esto. Estaría agradecido si alguien con más conocimientos proporcionaría una respuesta moderna del sistema.Respuestas:
El ajuste Busco está en / etc / default / rcS ,
FSCKFIX=yes
. Esto significa "reparar automáticamente los sistemas de archivos con inconsistencias durante el arranque" y hace que fsck se ejecute con el-y
indicador. Se configuróno
en mis dos sistemas Ubuntu.Incluso cuando se establece en
no
, el tiempo de arranque fsck sigue siendo algo poco interactivo. mountall ejecuta fsck with-a
, un sinónimo de-p
, que significa "solucionar automáticamente cualquier problema del sistema de archivos que pueda solucionarse de forma segura sin intervención humana". Aparentemente-p
cae al modo interactivo si hay que hacer arreglos inseguros. Para ejecutarse de forma totalmente automática, necesita-y
oFSCKFIX=yes
.Aquí está el código relevante de mountall.c
fuente
fsck.repair=yes
a paramGRUB_CMDLINE_LINUX_DEFAULT
in/etc/default/grub
Para Ubuntu 15,16,17+, la configuración del valor FSCKFIX se encuentra en lib / init / vars.sh
Puede usar el comando
grep -r FSCKFIX * 2>/dev/null
para encontrarlo.fuente
/etc/default/rcS
./lib/init/vars.sh
tiene un valor predeterminado paraFSCKFIX
pero luego fuentes/etc/default/rcS
que pueden anularlo. OTOH un sistema Ubuntu 18 recién instalado no tenía unrcS
archivo en absoluto.Asegúrese de no tener ningún indicador que pueda causar esto en fstab, y verifique sus scripts de inicio. (Intente grep'ing sus scripts de inicio para 'fsck' para encontrar dónde se usa) Mi sistema ejecuta fsck no interactivo, así que aquí hay una copia de mi fstab y parte de mi script / etc / init / mountall para que pueda comparar
Fragmento de / etc / init / mountall
fuente
grep FSCKFIX /etc/default/rcS
dice en su sistema?