Publicado el Dejar un comentario

Sincronizar la hora entre Windows y Linux

Si tienes instalada alguna distribución GNU/Linux conviviendo con Windows, es muy probable que te resulte molesto (y necesario) sincronizar la hora entre Windows y Linux.

Este “detalle” (porque no es un problema realmente), se debe a que estos ambos sistemas operativos, gestionan de manera distinta el tiempo: en el caso de una gran mayoría de distribuciones GNU/Linux, se utiliza los esquemas UTC (Universal Time Coordinated) o GMT (Greenwich Mean Time) que no son otra cosa que formas universales de “comprender” el tiempo y zonas horarias; en otro sentido, los sistemas operativos Windows, utilizan los esquemas de “Hora Local” (Localtime) que al día de hoy, se encuentran asistidos por NTP (Network Time Protocol) para “sincronizar” relojes entre dispositivos.

La hora local, no es más que la “hora” de una zona horaria particular que “establece” el usuario o bien, que establece tu servidor NTP en función de la región que le hayas indicado.

Así, Network Time Protocol (NTP) es un protocolo de Internet para sincronizar los relojes de los sistemas informáticos a través del enrutamiento de paquetes en redes con latencia variable, y el UTC se obtiene a partir del Tiempo Atómico Internacional, un estándar de tiempo calculado a partir de una media ponderada de las señales de los relojes atómicos, localizados en cerca de 70 laboratorios nacionales de todo el mundo.

Debido a que la rotación de la Tierra es estable, pero no constante y se retrasa con respecto al tiempo atómico, UTC se sincroniza con el tiempo medio de Greenwich (obtenido a partir de la duración del día solar), al que se le añade o quita un segundo intercalar cuando resulta necesario, siempre a finales de junio o diciembre. La decisión sobre los segundos intercalares la determina el Servicio Internacional de Rotación de la Tierra y Sistemas de Referencia, basándose en sus mediciones de la rotación de la Tierra..

Para serte honesto, el modelo UTC es un esquema de gestión del tiempo universal más apropiado que garantiza interoperabilidad.

Lo anterior, es la razón por la cual, si tienes una instalación Windows con GNU/Linux conviviendo, es muy seguro que tengas Dual Boot instalado (también conocido como Arranque Dual) por lo que habrás notado que en tu distribución GNU/Linux obtienes la hora exacta sin mayor inconveniente pero, al arrancar sesión en Windows, obtienes una hora distinta que no concuerda con tu zona horaria.

Para resolver esto, tienes 2 opciones:

Opción A: Obligar a Windows a utilizar el esquema de Coordinación de Hora Universal (UTC)

En mi caso, esta sería mi opción favorita porque representa la oportunidad de hacer que tu sistema operativo respete y se ajuste a los estándares de sentido de comunidad y convivencia. Además, será capaz de actualizarse sin problemas durante los cambios de horario de invierno y verano, o simplemente, durante al paso a una zona horaria distinta.

Para configurar este esquema, presiona la combinación de tecla Windows + R y escribe “regedit” para abrir el editor de registro de Windows:

Iniciamos el editor de registro de Windows.

Ahora, busca dentro de los registros, la siguiente clave:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
Modificamos la zona horaria.

A continuación, haz clic con el botón derecho del mouse sobre la carpeta TimeZoneInformation y crea un valor dword al cual deberás poner por nombre “RealTimeIsUniversal”:

Añadimos un valor DWORD…
Sincronizar la hora entre Windows y Linux mediante opción "RealTimeIsUniversal".
RealTimeIsUniversal

Ahora, haz doble clic sobre el valor “RealTimeIsUniversal” creado y asígnale el valor de “1”:

Una vez hecho lo anterior, deberemos ahora desactivar la sincronización automática de hora en Windows; para ello, escribe en la barra de búsqueda de Windows el comando CMD y selecciona la opción “Ejecutar como administrador”:

sc config w32time start= disabled

Si todo ha funcionado bien, observarás un mensaje como este, ¡y es todo!

Nota: Si en algún momento deseas revertir los cambios, solo debes el valor de la entrada “RealTimeIsUniversal” a “0” para volver a trabajar con la hora local.

Opción B: Obligar a GNU/Linux a utilizar el esquema de Hora Local (localtime)

En GNU/Linux el tema es más simple, ya que solo tienes que ejecutar el siguiente comando como administrador:

sudo timedatectl set-local-rtc 1

¡Y eso es todo!

Deja un comentario