Provavelmente, o Linux tenta manter o relógio do seu hardware como UTC . Ele recalcula para o fuso horário desejado toda vez que é necessário. Isso torna o clock do hardware independente do fuso horário, do SO específico, do DST etc. Dois sistemas operacionais com diferentes configurações de fuso horário podem coexistir pacificamente, se concordarem que o clock do hardware é UTC.
O Windows, por outro lado, anexa o relógio de hardware a si mesmo. Ele usa o horário local e espera que o relógio do hardware seja definido de acordo com ele. Dois desses sistemas operacionais impertinentes com diferentes configurações de fuso horário enfrentam constantemente um relógio de hardware. E como o Linux tenta mantê-lo como UTC, ele também terá problemas com o Windows, a menos que o horário local no Windows seja igual ao UTC (mas, no seu caso, não deve).
Existem algumas maneiras de lidar com isso. Escolha um:
-
Permita que cada sistema operacional sincronize via NTP por conta própria e ajuste o relógio do hardware para frente e para trás. Até que o daemon / serviço NTP seja ativado, o relógio do sistema pode estar desligado. Se o daemon / serviço falhar em fazer seu trabalho, o relógio do sistema pode estar desligado. Seus comentários me fazem acreditar que seu Serviço de Tempo do Windows não inicia; deve começar automaticamente. Eu acho que o tempo está errado também quando você inicia o seu Ubuntu, mas o Linux acerta o relógio via NTP antes que você perceba.
-
Faça com que o Windows suporte o UTC como tempo de hardware. Veja esta resposta à questão relevante . Observe que você precisa parar o Serviço de Tempo do Windows.
-
Faça o Ubuntu usar a hora local como tempo de hardware. De acordo com esta resposta :
Check that
/etc/adjtime
is configured correctly. The third line must containUTC
(exactly these three characters) if the hardware clock uses UTC, and something else (e.g. empty) if the hardware clock uses local time (in the time zone defined by/etc/timezone
).Obviamente, as configurações de fuso horário em ambos os sistemas operacionais devem corresponder. Eu acredito que com este método você pode continuar sincronizando via NTP em um SO ou ambos.
Editar
A terceira maneira requer que haja /etc/adjtime
. Se não houver um no seu Ubuntu, então acredito que esta resposta dá a dica certa:
If file
/etc/adjtime
is not present, systemd assumes the hardware clock is set to UTC.The hardware clock can be queried and set with the
timedatectl
command. To change the hardware clock time standard to localtime, use:sudo timedatectl set-local-rtc 1
If you want to revert to the hardware clock being in UTC, do:
sudo timedatectl set-local-rtc 0
These will generate
/etc/adjtime
automatically and update the RTC accordingly; no further configuration is required.