Sincronizar horarios entre Linux y Windows (dual boot)

 




En mi ordenador principal tengo Debian 12 y Windows 11. Tanto en Debian como en Windows tengo activada la opción de sincronizar la hora automáticamente, pero sospecho que esto debe funcionar para los cambios de horario de invierno y verano ya que si cambias la hora manualmente, esta se queda tal cual, no se sincroniza con la real. Y de hecho ocurre algo muy curioso, y es que si tienes ambos sistemas instalados y entras en cada uno de ellos, verás como la hora se ha desfasado en ambos, teniendo que volver a ajustar el tiempo en cada uno de ellos.


El sistema operativo GNU-Linux almacena la hora en el formato UTC, mientras que Windows la almacena en formato de hora local. Esto ocasiona que al cambiar entre sistemas operativos se produzcan desfases de hora. La solución pasa por activar la sincronización NTP (Network Time Protocol) 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. 


Esto se debe de hacer en los dos sistemas operativos.



timedatectl para controlar la fecha y la hora del sistema en Linux

El comando timedatectl es el comando en Linux que te permite consultar y cambiar el reloj del sistema y su configuración. Viene como parte de systemd, un reemplazo del demonio sysvinit utilizado en los sistemas GNU/Linux y Unix.


Nota : todos los ejemplos descritos en este artículo se prueban en GNU bash, versión 5.2.15(1).

Mostrar información de fecha/hora del sistema

Simplemente ejecute el comando sin opciones ni indicadores de línea de comando y le brindará información sobre la fecha y hora actuales del sistema, así como la configuración relacionada con la hora. Por ejemplo, aquí está el resultado cuando ejecuté el comando en mi sistema:

timedatectl

El resultado de ejecutar el comando anterior sería el siguiente:

La imagen tiene un atributo ALT vacío; su nombre de archivo es chapuboot@chapuboot-systemproductname-_011.png

Entonces puede ver que el resultado contiene información sobre LTC, UTC y zona horaria, así como configuraciones relacionadas con NTP, RTC y DST para el host local.

Ejemplos de configuración de la hora

Configurar la sincronización horaria de la red basada en NTP (recomendada)

NTP, o Network Time Protocol, es un protocolo de red para la sincronización del reloj entre sistemas informáticos a través de redes de datos de latencia variable y conmutación de paquetes. Su objetivo es sincronizar todas las computadoras participantes dentro de unos pocos milisegundos de UTC.


El comando timedatectl proporciona una opción set-ntp que controla si la sincronización de hora de red basada en NTP está habilitada. Esta opción espera un argumento booleano.

Instala el servicio NTP

sudo apt install systemd-timesyncd

Para habilitar la sincronización horaria basada en NTP, ejecute el siguiente comando:

timedatectl set-ntp true

Ahora tenemos activo el servicio NTP que sincronizará la hora automáticamente desde internet.


La imagen tiene un atributo ALT vacío; su nombre de archivo es chapuboot@chapuboot-systemproductname-_012-1.png

Hasta aquí sería suficiente para dejar el sistema funcionando. Este es el modo que he elegido ya que la hora siempre se actualiza con la hora de internet.


Para deshabilitar, ejecute:


timedatectl set-ntp false

Cómo corregir el cambio de hora en Windows

Cabe advertir que hay diferentes formas de corregir el cambio de hora en Windows: la más accesible es hacerlo directamente desde las opciones del reloj, de manera manual, sin embargo, hacerlo manual no tiene sentido. La forma más sencilla de aplicar el cambio de hora en Windows de manera automática y fiable es… que Windows imite a Linux y utilice la hora UTC de manera predeterminada. Para ello, hay que modificar el registro de Windows.


1. Abre el editor del registro de Windows.


2. Acepta que «esta aplicación haga cambios en el dispositivo».


3. Ve a:
 «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation» (puedes copiar y pegar la ruta en la barra de direcciones del editor, sin las comillas).

4. Abre el menú contextual sobre la carpeta «TimeZoneInformation» en el panel lateral y crea un valor nuevo como ves en la imagen («QWORD» para sistemas de 64-bit, «DWORD» para sistemas de 32-bit). Como nombre ponle «RealTimeIsUniversal«.


5. Abre el menú contextual sobre el valor ya creado, elige la opción «Editar el valor de…» y cámbialo de «0» a «1». Y ya puedes cerrar el editor.


Eso es todo, ahora los dos sistemas actualizarán sus horas de forma automática sin que tengas que hacer nada.

Otros modos de configurar la fecha y la hora en Linux

Configuración manual de fecha y hora.

Para configurar el reloj del sistema en una fecha u hora específica, use la opción set-time seguida de una cadena que contenga la nueva información de fecha/hora. Por ejemplo, para cambiar la hora del sistema a las 19:58:27 pm, utilicé el siguiente comando:

timedatectl set-time "2023-11-04 19:58:27"

y aquí está el resultado:

La imagen tiene un atributo ALT vacío; su nombre de archivo es chapuboot@chapuboot-systemproductname-_011-1.png

Observe que el campo Hora local ahora muestra la hora actualizada. Del mismo modo, también puedes actualizar la fecha del sistema.

Actualice la zona horaria del sistema usando la opción set-timezone

Para establecer la zona horaria del sistema en el valor especificado, puede usar la opción set-timezone seguida del valor de la zona horaria. Para ayudarle con la tarea, el comando timedatectl también proporciona otra opción útil.  list-timezones le proporciona una lista de zonas horarias disponibles para elegir.

Por ejemplo, aquí está la lista desplegable de zonas horarias que el comando timedatectl produjo en mi sistema:

timedatectl list-timezones
La imagen tiene un atributo ALT vacío; su nombre de archivo es chapuboot@chapuboot-systemproductname-_006.png

Para cambiar la zona horaria actual del sistema de Asia/Kolkata a Asia/Katmandú, este es el comando que utilicé:

timedatectl set-timezone Africa/Cairo

y para verificar el cambio, aquí está el resultado del comando  timedatectl

La imagen tiene un atributo ALT vacío; su nombre de archivo es chapuboot@chapuboot-systemproductname-_010.png

Puede ver que la zona horaria se cambió al nuevo valor.

Configurar RTC

También puede utilizar el  comando timedatectl para configurar RTC (reloj en tiempo real). Para aquellos que no lo saben, RTC es un reloj de computadora que funciona con baterías y que registra la hora incluso cuando el sistema está apagado. El comando timedatectl ofrece una opción set-local-rtc que se puede utilizar para mantener el RTC en hora local o en hora universal.

Esta opción requiere un argumento booleano. Si se suministra 0, el sistema está configurado para mantener el RTC en hora universal:

timedatectl set-local-rtc 0

pero en caso de que se proporcione 1, mantendrá el RTC en la hora local.

timedatectl set-local-rtc 1

Una advertencia : mantener el RTC en la zona horaria local no es totalmente compatible y creará varios problemas con los cambios de zona horaria y los ajustes del horario de verano. Si es posible, utilice RTC en UTC.

Otro punto que vale la pena señalar es que si set-local-rtc se invoca y --adjust-system-clock se pasa la opción, el reloj del sistema se sincroniza nuevamente desde el RTC, teniendo en cuenta la nueva configuración. De lo contrario, el RTC se sincroniza desde el reloj del sistema.


Comentarios

Entradas populares de este blog

TP-Link WR841ND repetidor WIFI

Instalar y Configurar aMule en Ubuntu

II. Vodafone Technicolor Tc7230 modo bridge.