Me gusta ejecutar un sistema desatendido para el uso diario de 'quiosco'.
Sin embargo, el sistema puede apagarse en cualquier momento sin que alguien realice un apagado adecuado antes. Por defecto, no se espera que Ubuntu se apague por pérdida de energía. Después de reiniciar después de una pérdida de energía, se puede ejecutar fsck para verificar el sistema de archivos, y fsck puede indicarle al sistema que se reinicie una vez que haya finalizado. Entonces, incluso si no hay datos de configuración dañados, es posible que la máquina no arranque bien después de una pérdida de energía. Así que probé algunas soluciones alternativas:
cambie la prioridad de fsck del montaje raíz a
0
(último campo enfstab
la entrada raíz) que impide la ejecuciónfsck
después de cada pérdida de energía. Sin embargo, el sistema puede arrancar con raíz de solo lectura, lo cual no es esperado por muchos servicios y da como resultado una solicitud de inicio de sesión de consola en lugar del inicio de sesión gráfico.Reemplazar
errrors=remount-ro
porerrors=continue
. Esto da la mala sensación de que un sistema de archivos incosistente puede producir una mayor pérdida de datos. Sin embargo, confsck
habilitado nuevamente, debería aumentar la capacidad de arranque del sistema después de una pérdida de energía. Entonces dejé caer 1).Vuelva a configurar grub2 para usar un tiempo de espera de opción predeterminado normal después de un inicio fallido. Para eso, he agregado
GRUB_RECORDFAIL_TIMEOUT=0
a/etc/default/grub
.
Sin embargo, es difícil saber si estos hacks hacen que el sistema sea a prueba de pérdida de energía. ¿Algunas ideas? ¿Alguien más puede hacer?
Respuestas:
Para la aplicación de kiosco, el problema se resuelve utilizando una partición raíz de solo lectura. Además, los cambios que los usuarios realizan o guardan se deshacen en el próximo reinicio.
Para proporcionar una raíz de escritura para la mayoría de las necesidades de las aplicaciones, overlayfs se puede utilizar para superponer la partición de solo lectura con un ram tempfs de escritura.
Hay un script que ayuda a crear dicha configuración en la parte inferior de https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash . El script contiene las instrucciones para configurar esto:
sudo chmod 0755 root-ro
sudo update-initramfs -u
Sugiero añadir
GRUB_RECORDFAIL_TIMEOUT=0
a/etc/default/grub
y corrersudo update-grub
demasiado, de lo contrario el menú de inicio puede aparecer sin tiempo de espera.Después de eso, reinicia. Luego, la máquina se inicia en modo de solo lectura, que se puede verificar
mount
. Cualquier cambio aplicado se desvanecerá en el próximo reinicio. Para realizar cambios, instalar software y actualizaciones, etc. solo necesita ingresar al menú de GRUB, presionare
para cambiar las líneas de comando de inicio y agregardisable-root-ro=true
a la línea que comienza con el núcleo. Presione F10 para continuar el arranque. Luego puede usarmount
para confirmar que la raíz está montada en escritura como de costumbre. Realice los cambios y reinicie, el sistema vuelve a ser de solo lectura.fuente
Algunas veces después de un reinicio sucio (por ejemplo, presionar el botón de pérdida de energía o reinicio o incluso un kernel panic), el sistema no se iniciará pidiéndole que presione "y" para que un fsck repare la partición.
Si desea evitar esto, edite / etc / default / rcS y cambie:
A:
Esto asegurará que esta reparación se ejecute automáticamente sin preguntarle.
La desventaja puede ser que puede perder datos y es posible que desee sacar el disco duro y clonarlo primero si hay algo crítico en él que no esté respaldado.
Por ejemplo, si su controlador de disco duro tiene una falla y fsck identificó falsamente la partición como rota e intenta repararla, eso puede conducir a la pérdida de datos que de otra manera se podría evitar. Nunca he experimentado esto yo mismo y he tratado con cerca de mil servidores en los últimos 7 años más o menos, pero aún así es algo a tener en cuenta.
fuente
A partir de hoy, por un quiosco solución también se puede instalar el paquete de sólo lectura
overlayroot
porque proporcionará fácilmente una solución completa como la de la respuesta aprobada. También permite el comando beneficioso
que iniciará sesión en un shell con el antiguo disco base de solo lectura montado
/
. Entonces es posible realizar cambios en el sistema protegido como uno y, por ejemplo, utilizarapt-get
para instalar paquetes en el disco de solo lectura anterior. Sin embargo, después de salir del shell, se recomienda reiniciar, ya que los archivos sobrescritos temporalmente en la RAM pueden ocultar los recién instalados.fuente