Si su orden arranque dual Tanto en Windows como en Linux, puede notar que es imposible sincronizar los relojes del sistema. No importa cómo cambie la hora en un sistema operativo, el problema no se resuelve con el otro sistema operativo. Esto se debe a un desacuerdo sobre la metodología de cronometraje entre los sistemas operativos basados en Windows y Linux. Afortunadamente, hay una solución relativamente fácil para eso.
¿Por qué pasó esto?
La computadora almacena la hora actual en el reloj de la placa base. Esto permite que la computadora realice un seguimiento de la hora incluso cuando la computadora está apagada. Para calcular las zonas horarias, diferentes sistemas operativos utilizan diferentes métodos. Windows asume que la hora local está almacenada en la placa base, por lo que no aplica ningún tipo de compensación de zona horaria. Para Nix, por otro lado, interpretará la hora en la placa base como UTC (es decir, hora media de Greenwich) y aplicará una compensación de zona horaria para mostrar la hora local.
Cada uno de estos sistemas funciona perfectamente bien de forma independiente. El problema ocurre cuando el arranque dual de Windows y Linux desde la misma placa base. Cuando los sistemas operativos tienen que compartir una tienda de tiempo, los relojes no se sincronizarán.
Hay dos formas diferentes de resolver este problema: podemos cambiar la forma en que Nix interpreta el tiempo almacenado o podemos hacer lo mismo en Windows.
Opción 1: hacer que Linux use la hora local
La forma más confiable de hacer que Linux y Windows encajen en el tiempo es cambiar la metodología de cronometraje de Linux. Si bien esto no se admite explícitamente, es un poco más confiable que hacer lo mismo en Windows. Funciona en cualquier distribución de Linux que use systemd, que incluye Ubuntu, Fedora, Red Hat, Debian y Mint. Cambiar la hora de Windows suele funcionar muy bien, pero a veces puede generar inestabilidad en programas de terceros que esperan que la hora almacenada sea la hora local.
1. Abra la Terminal y ejecute el siguiente comando:
timedatectl set-local-rtc 1 --adjust-system-clock
timedatectl set-local-rtc 0 --adjust-system-clock
Opción 2: hacer que Windows use UTC
También puede cambiar la forma en que Windows muestra la hora del sistema. Esta explicación hará que Windows interprete la hora almacenada en la placa base como UTC, lo que luego hará que Linux interprete la zona horaria correcta. Si bien esto generalmente funciona bien, algunas aplicaciones se basan en la hora de la placa base como hora local. Como resultado, puede causar problemas con estas aplicaciones. Esto hace que esta opción sea un poco menos deseable que la primera.
1. Deshabilite "Establecer hora automáticamente" en "Hora e idioma" en la aplicación Configuración. Esto evitará que Windows vuelva a los cambios que compartiremos.
2. Abra el Editor del Registro escribiendo regedit en el menú Inicio.
3. Busque la siguiente clave de registro en el panel derecho del Editor del registro. Para llegar allí rápidamente, pegue la ubicación en la barra de direcciones del Editor del Registro:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation
4. Haga clic derecho en la clave "TimeZoneInformation" en el panel derecho y seleccione "Nuevo -> Valor DWORD (32 bits)" en el menú contextual.
5. Nombre su nuevo valor "RealTimeIsUniversal".
6. Haga doble clic en el valor que creó, establezca su valor en "1" y luego haga clic en Aceptar.
Conclusión
La forma más segura de sincronizar los relojes de su sistema en un sistema de arranque dual es ajustar la forma en que Linux interpreta la hora. Si esto no funciona para usted (o si está usando macOS en lugar de Linux), también puede editar el registro de Windows para cambiar la forma en que Windows interpreta el tiempo de la placa base.