sábado, 7 de octubre de 2017

Dos horas de diferencia entre Windows 10 y Linux, problemas en el reloj del sistema en equipos con arranque dual

Un curioso problema que se me ha dado en equipos con arranque dual Linux-Windows ha sido que la hora del sistema variaba bastante dependiendo del Sistema Operativo arrancado. Si en algún momento necesitaba cambiar de Sistema Operativo experimentaba un misterioso "viaje en el tiempo" y si, por ejemplo cerraba sesión en Linux a las 13:05 cuando entraba en Windows eran las 11:06 (dejemos un minutito extra para el cierre de un sistema y el arranque de otro).



La variación en mi caso era de dos horas más en Linux (o dos horas menos en Windows) aunque investigando el tema he visto que dependiendo de la zona horaria podemos tener otras variaciones. Esto sucede debido a que en Linux la hora del reloj del sistema se trata en formato UTC  mientras que en el caso de Windows se interpreta en formato de hora local. Puesto que cada sistema trabaja con el reloj de la BIOS de manera diferente vamos a tener un curioso desfase horario salvo que solucionemos el problema. De las dos posibles soluciones, configurar Linux para que gestione el formato en hora local o configurar Windows para que use UTC personalmente prefiero esta última, así que dejaré aquí los pasos para arreglarlo por si alguien se encuentra este problema y quiere solucionarlo, debo decir que en foros he encontrado muchas variaciones distintas con posibles soluciones, yo dejo la mía probada al 100%. :-)

Editando el registro de Windows 

Necesitamos editar el registro de windows, aunque se puede hacer desde línea de comandos en mi caso lo hice directamente desde el editor de registro de Windows. Basta hacer clic en el botón Inicio de Windows y tecleamos regedit:


Después de que el sistema nos pregunte si queremos continuar con esta acción nos encontramos el editor de registro. 


En la parte de la izquierda de la ventana vamos desplegando el árbol de claves hasta llegar a la siguiente ruta:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

Si lo hemos hecho correctamente nos encontraremos con una pantalla como la siguiente....


Ahora debemos crear un nuevo valor, en el caso de que nuestra versión de Windows sea de 64 bits debemos crear un QWORD mientras que si es de 32 bits el valor a crear será del tipo DWORD. Para añadirlo podemos hacerlo desde el menú Edición > Nuevo y elegimos el tipo de valor a crear o simplemente en el menú contextual que sale al hacer clic derecho sobre el panel derecho de la ventana.




El nombre del valor a crear en los dos casos es RealTimeIsUniversal y su valor debe ser 1.




En mi caso y simplemente realizando estos pasos ya he conseguido que la hora en los dos sistemas esté coordinada. En la wiki de Ubuntu he leído que es recomendable deshabilitar la Herramienta de Servicios de Tiempo de windows (W32tm.exe) mediante el siguiente comando:


Aunque en mi caso no ha sido necesario y por el momento no he vuelto a hacer viajes en el tiempo al pasar de Windows a Ubuntu o viceversa. Por otro lado también existe otra solución, como pasar la hora de Linux a formato Local Time, podéis verlo en el enlace inferior de la Wiki de Ubuntu

Saludos
Jorge

Fuente: Ubuntu Wiki- Multiple boot systems time conflicts 


No hay comentarios:

Publicar un comentario

¿Hello World en Sonic Pi?

¿Hello World en Sonic Pi? Llevo un tiempo programando en  Sonic PI , un entorno de programación que posee un lenguaje propio orientado al...