Tiempo diferente en Windows y Linux Mint


18

He instalado Linux Mint primero en mi Acer Aspire 4930 y luego con arranque dual con Windows 7.

Siempre veo la hora correcta en Linux Mint, pero al arrancar en Windows la hora se retrasa unas horas, incluso después de restablecer la hora, al reiniciar, muestra una hora equivocada nuevamente.


Preguntas:

  1. ¿Por qué está pasando esto?

  2. ¿Qué puedo hacer al respecto?

Respuestas:


17

En Windows, el reloj RTC del sistema se mantiene tradicionalmente en la hora local. En Unix y Linux, se conserva tradicionalmente en UTC, y /etc/localtimese utiliza para indicar la zona horaria actual para que la hora mostrada sea correcta.

Estas dos cosmovisiones chocan en configuraciones de arranque dual porque solo hay un RTC. Por lo general, le dice a Linux que asuma que el RTC es la hora local (porque no se puede decir a Windows). Esto varía de uno a otro Linux, pero como menta es como Ubuntu es probable que pueda establecido UTC=noen /etc/default/rcS. Luego puede configurar el reloj a la hora local en Windows y Linux lo dejará solo después de eso.


Nota del editor :

Ese archivo no está presente desde Linux Mint 19 (o más precisamente desde la base Ubuntu 18.04):

/etc/default/rcS

2
UTC ya está configurado en no, la diferencia horaria sigue ahí.
Ballistic

5

Mint 18.2 KDE parece ser inmune a las otras soluciones (incluidas las adicionales que encontré en una búsqueda). Los archivos mencionados en las respuestas de aecolley y error404 ya no existen o parecen no estar donde se hace referencia a la configuración, al menos en la versión actual de KDE. El comando en la respuesta de Julie Pelletier funcionó para 18.2 Cinnamon pero no para 18.2 KDE.

Después de probar media docena de soluciones sugeridas, lo siguiente lo arregló para 18.2 KDE. Con la hora correcta mostrada, ejecute el siguiente comando de terminal:

timedatectl set-local-rtc 1 --adjust-system-clock

Fuente: Consejos y trucos para Linux Mint después de la instalación [Mint 18 - Cinnamon Edition]

Esto también debería funcionar para Cinnamon como una solución alternativa, y supongo que otros DE también.

Notas del editor:

  • No es sudonecesario, ejecuta ese comando como tu usuario.

  • Persiste en el reinicio, debe ser permanente.

  • Probado en Linux Mint 19.1 Cinnamon, que está basado en Ubuntu 18.04.


Confirmo que funciona en Mint 18.3 Cinnamon.
dchrome

@Vlastimil, ha pasado un tiempo desde que hice esto. Recuerdo que no se requiere sudo (si lo fuera, lo habría incluido en la respuesta, y las soluciones similares tampoco se refieren a sudo, así que estoy bastante seguro de que no lo es). Y sí, esto persiste.
Fixer1234

@ Fixer1234 Muchas gracias, amigo! Me salvaste el día y creo que todo el mundo :)
LinuxSecurityFreak

3

La forma más genérica de hacerlo es con:

hwclock --systohc --localtime

que es persistente en todos los reinicios y funciona en la mayoría de los sistemas.


Si su reloj muestra actualmente la hora correcta, entonces el comando que necesita es hwclock --systohc --localtime, de hecho , que configurará el reloj del hardware a la hora local utilizando el valor que muestra actualmente el sistema. Sin embargo, si su reloj es actualmente incorrecto (es decir, el reloj de hardware es hora local, pero el sistema agrega el desplazamiento para su zona horaria, lo que resulta en un valor mostrado incorrecto), entonces necesita hwclock --hctosys --localtime.
youen

@youen, tuve esa situación y su modificación simplemente arrojó el tiempo libre en la otra dirección. La solución para mí fue restablecer el reloj a la hora correcta y luego usar el comando en la respuesta de Julie.
fijador1234

@ Fixer1234 OK, raro. Para ser honesto, no probé el segundo comando en mi comentario, ya que ya había arreglado mi reloj. Sin embargo, creo que ejecutar cualquiera de estos comandos, y luego configurar el reloj en la hora correcta, hará el truco (ejecutar el primer comando nuevamente probablemente no sea necesario si ya ha ejecutado el segundo). Me alegra que haya funcionado para ti al final :)
youen

1

ADVERTENCIA

Este método tiene errores en las versiones anteriores a 7 de Windows, pero resuelve el problema en el lado de Windows de la ecuación, en lugar de en el extremo de Linux: no tiene que configurar Linux para usar localtime .


Tomado de la Wiki Arch Linux más gloriosa y estimada :

Una razón por la que los usuarios suelen configurar el RTC en localtime es para el arranque dual con Windows (que usa localtime).

Sin embargo, Windows [puede manejar que el RTC sea UTC] con una simple corrección de registro. Se recomienda configurar Windows para usar UTC, en lugar de Linux para usar localtime.

Utilizando regedit, agregue un DWORDvalor con valor hexadecimal 1al registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal

Puede hacerlo desde un símbolo del sistema del administrador que se ejecuta:

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

Alternativamente, cree un archivo * .reg (en el escritorio) con el siguiente contenido y haga doble clic para importarlo al registro:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=dword:00000001

Si lo anterior parece no tener efecto, y se está utilizando una variante de Windows de 64 bits, el uso de un QWORDvalor en lugar de un DWORDvalor puede resolver el problema.

Si Windows solicita actualizar el reloj debido a cambios en el horario de verano, déjelo. Dejará el reloj en UTC como se esperaba, solo corrigiendo la hora mostrada.

Es posible que sea necesario actualizar el reloj del hardware y la hora del sistema después de configurar este valor. Si tiene problemas con el desplazamiento del tiempo, intente reinstalar tzdata y luego configure su zona horaria nuevamente:

# timedatectl set-timezone America/Los_Angeles

De hecho, he tenido este mismo problema en mi propia máquina Windows, pero hasta ahora simplemente lo he ignorado; Sin embargo, veré si este método funciona y reportaré mis hallazgos.
Alexej Magura

1
Esto funciona para mi. ¡Muchas gracias! De esta manera, no tengo que modificar todas las instalaciones de Linux que hay en mi PC.
Lokesh

0

Modifique (como raíz) la /etc/timeadjvariable de UTCa LOCAL.

Esto solucionó el problema sin tener que jugar con regedit en el lado de Windows.


0

Ejecute uno de estos dos comandos que coincidan con su hora local

timedatectl set-local-rtc 1 --adjust-system-clock

'o'

timedatectl set-local-rtc 0 --adjust-system-clock
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.