Estoy trabajando con un sistema en el que queremos permitir que los usuarios jueguen con la fecha y la hora si lo desean, y donde los reinicios pueden ocurrir arbitrariamente. Esto está bien, excepto por una cosa: si hay un gran salto de tiempo hacia atrás, aparece el siguiente error al reiniciar:
Checking filesystems
IMAGE2: Superblock last mount time (Tue Mar 1 17:32:48 2011,
now = Thu Feb 24 17:34:29 2011) is in the future.
IMAGE2: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
... y luego el arranque se cuelga esperando la entrada de la consola del usuario, e incluso una vez que se obtiene acceso a la consola, se requiere una contraseña de root para continuar.
Esto es decididamente menos que ideal. ¿Hay alguna forma de omitir el cheque o forzar que el cheque se realice automáticamente al reiniciar?
Google solo ha proporcionado ayuda que requiere ejecutar fsck manualmente si / cuando se golpea, que no es lo que busco. Ejecutar fsck manualmente después de configurar el tiempo no funciona ya que el sistema de archivos todavía está montado en ese punto, y simplemente deshabilitar fsck por completo es menos que ideal.
Estoy usando RedHat 6.
Actualización : La solución con la que estoy trabajando actualmente es hackear fstab para deshabilitar la comprobación de fsck al reiniciar. Intenté editar el último tiempo de montaje en los discos usando debugfs
, lo que funciona bien para las unidades ext3, pero parece fallar inconsistentemente en ext4.
Dudo que haya una manera de eliminar esta verificación específicamente, sin modificar el código fuente. Ignorar todos los errores de fsck suena peligroso, ¿y si hubiera algún otro problema?
Por lo tanto, sugeriré la siguiente solución: cambie los scripts de arranque para establecer la fecha del sistema en algún momento en el futuro (digamos 2038-01-18 en una máquina de 32 bits) justo antes de ejecutar fsck, y léalo desde el hardware reloj posterior (
hwclock --hctosys
con más opciones según sea necesario según su hardware y el uso de GMT en el reloj de hardware).fuente
Parece que debería ejecutarse en una máquina virtual, donde puede tener más control (o simplemente volver a una instantánea).
fuente
Aquí hay una solución que funcionó muy bien para mí:
Cree /etc/e2fsck.conf:
Más sobre esta solución aquí:
http://stillstup.blogspot.com/2010/02/superblock-last-mount-time-is-in-future.html
fuente