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 -yo -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 0para 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/rcSno son realmente válidas en 2019, con Ubuntu 16 y Ubuntu 18 ahora usando systemd. No conozco la historia completa de systemd, pero lafsck.repairopció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 configuraryespara-y./etc/default/grubpuede 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-yindicador. Se configurónoen 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-pcae al modo interactivo si hay que hacer arreglos inseguros. Para ejecutarse de forma totalmente automática, necesita-yoFSCKFIX=yes.Aquí está el código relevante de mountall.c
fuente
fsck.repair=yesa paramGRUB_CMDLINE_LINUX_DEFAULTin/etc/default/grubPara 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/nullpara encontrarlo.fuente
/etc/default/rcS./lib/init/vars.shtiene un valor predeterminado paraFSCKFIXpero luego fuentes/etc/default/rcSque pueden anularlo. OTOH un sistema Ubuntu 18 recién instalado no tenía unrcSarchivo 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/rcSdice en su sistema?