Tenho Ubuntu e Windows 11 no mesmo computador. E cada vez que eu alternava entre eles, o relógio ficava maluco, atrasado ou adiantado.
Minha saída até aqui era um .bat que ressincronizava a hora pela rede a cada inicialização. Essa gambiarra resolve o problema, porém com atraso até conectar a internet pra buscar o servidor NTP.
Pesquisando sobre o assunto encontrei a correção definitiva: uma chave no registro do Windows. Antes de mexer nela, confirmei o lado do Ubuntu.
Conceitos fundamentais
| Conceito | O que é |
|---|---|
| RTC (Real Time Clock, relógio de tempo real) | O relógio da placa-mãe, alimentado por uma bateria própria. Continua contando com o computador desligado e fora da tomada |
| UTC (Coordinated Universal Time, tempo universal coordenado) | A referência de hora usada no mundo todo, sem fuso e sem horário de verão |
| fuso horário | O deslocamento aplicado sobre o UTC para chegar na hora do lugar onde você está. São Paulo fica três horas atrás |
| NTP (Network Time Protocol, protocolo de hora em rede) | O protocolo que acerta o relógio do sistema consultando servidores de hora pela internet |
| NTP.br | O serviço público de hora legal brasileira, operado pelo NIC.br, com relógios sincronizados por GPS |
| stratum | A distância até a fonte de hora. Stratum 1 é o servidor ligado direto ao relógio de referência, stratum 2 é quem consulta um stratum 1, e assim por diante |
| dual boot | Dois sistemas operacionais instalados no mesmo computador, com a escolha feita na inicialização |
| registro do Windows | O banco de configurações do Windows, organizado em chaves e valores. Editável pelo regedit ou pelo comando reg |
RealTimeIsUniversal | A chave do registro que faz o Windows tratar o RTC como UTC |
timedatectl | O comando do Ubuntu que mostra e configura hora, fuso e sincronização |
Por que a divergência entre horários?
Os dois sistemas leem o mesmo RTC e discordam.
- O Ubuntu trata o RTC como UTC. Com 15:50 em São Paulo, ele grava 18:50 e aplica o fuso na hora de mostrar na tela.
- O Windows, na configuração padrão, trata o RTC como hora local. Com 15:50 em São Paulo, ele grava 15:50.
O Sistema Operacional que inicia depois lê esse número pela própria convenção, e erra pelo tamanho do fuso. Em seguida cada um se acerta pela rede e regrava o RTC do seu jeito, deixando o outro errado no próximo boot.
Passo 1: confirmar o Ubuntu
O Ubuntu já mantém o RTC em UTC por padrão, então aqui o trabalho é conferir.
Conferindo a saída do timedatectl…
O comando é o timedatectl, sem argumento:
timedatectl Local time: sáb 2026-07-25 15:50:18 -03
Universal time: sáb 2026-07-25 18:50:18 UTC
RTC time: sáb 2026-07-25 18:50:18
Time zone: America/Sao_Paulo (-03, -0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: noAnalisando a saída do comando:
| Linha | O que precisa aparecer |
|---|---|
RTC in local TZ | no, indicando que o RTC está sendo tratado como UTC |
RTC time | Igual ao Universal time, e não ao Local time |
NTP service | active, com o relógio se acertando pela rede |
Com o NTP service inativo, ligue a sincronização:
sudo timedatectl set-ntp trueCom o RTC in local TZ em yes, alguém já mudou essa máquina. Para voltar ao padrão:
sudo timedatectl set-local-rtc 0 --adjust-system-clockPasso 2: ajustar o Windows
Com o Ubuntu confirmado em UTC, falta fazer o Windows adotar a mesma convenção.
Aplicando a chave no registro…
Abra o Prompt de Comando como administrador e rode:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /t REG_DWORD /d 1 /fA partir daí o Windows lê e grava o RTC em UTC, igual ao Ubuntu. Falta garantir que o serviço de hora suba junto com o sistema e acerte o relógio na primeira oportunidade:
:: o espaço depois de "start=" faz parte da sintaxe do sc
sc config w32time start= auto
net start w32time
w32tm /resync /rediscoverReinicie e entre nos dois sistemas para ver o resultado.
NOTE
O relógio da BIOS/UEFI passa a mostrar UTC, três horas à frente do relógio de parede aqui. É o comportamento esperado quando os dois sistemas usam a mesma convenção.
TIP
A Microsoft não lista RealTimeIsUniversal na documentação do serviço de hora, embora a chave apareça na documentação da comunidade Ubuntu para dual boot e funcione no Windows 11 de 64 bits. Programas antigos que leem o RTC direto, sem passar pelo sistema, podem mostrar a hora em UTC.
Conferindo o resultado
Depois de passar pelos dois sistemas, cada lado responde se o acerto pegou.
Conferindo no Ubuntu…
O timedatectl responde de novo. Como aqui interessam quatro linhas da saída, dá para filtrar:
timedatectl | grep -E "Universal time|RTC time|RTC in local TZ|System clock synchronized" Universal time: sáb 2026-07-25 19:12:00 UTC
RTC time: sáb 2026-07-25 19:12:00
System clock synchronized: yes
RTC in local TZ: noO RTC time continua igual ao Universal time depois de você ter passado pelo Windows. Essa é a prova de que o outro sistema parou de regravar o RTC em hora local.
Conferindo no Windows…
Abra o Prompt de Comando e rode as duas consultas. A do registro precisa devolver 0x1, e o w32tm mostra a última sincronização bem-sucedida com a fonte de hora em uso:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal
w32tm /query /statusO caminho inverso
Dá para resolver pelo outro lado, deixando o Ubuntu tratar o RTC como hora local:
sudo timedatectl set-local-rtc 1 --adjust-system-clock
O manual do timedatectl desaconselha. Em tradução livre:
Manter o RTC no fuso local não tem suporte completo e cria vários problemas com mudanças de fuso e ajustes de horário de verão. Se possível, mantenha o RTC em modo UTC.
Hora local não carrega informação de fuso. Na virada do horário de verão para trás, a mesma hora acontece duas vezes, e o número gravado no RTC não diz qual das duas ele representa. Por isso o ajuste aqui ficou do lado do Windows.
Dica extra: sincronizar com o NTP.br
Com os dois sistemas concordando sobre o RTC, dá para melhorar de onde vem a hora. O Ubuntu consulta ntp.ubuntu.com por padrão e o Windows consulta time.windows.com, os dois fora do Brasil. O NIC.br mantém o NTP.br, que distribui a hora legal brasileira a partir de relógios sincronizados por GPS.
Apontando o Ubuntu para o pool.ntp.br…
A sincronização no Ubuntu 24.04 é feita pelo systemd-timesyncd, configurado num arquivo só:
sudo nano /etc/systemd/timesyncd.confDeixe a seção [Time] assim, com o servidor da distribuição como reserva:
[Time]
NTP=pool.ntp.br
FallbackNTP=ntp.ubuntu.comReinicie o serviço e confira de onde veio a hora:
sudo systemctl restart systemd-timesyncd
timedatectl timesync-status Server: 200.160.7.193 (pool.ntp.br)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
Leap: normal
Version: 4
Stratum: 1
Reference: GPS
Precision: 1us (-26)
Root distance: 37us (max: 5s)Stratum: 1 com Reference: GPS indica que o servidor consultado recebe a hora direto de um receptor GPS, sem intermediário.
Apontando o Windows para o pool.ntp.br…
O NTP.br recomenda o próprio serviço de hora do Windows, sem instalar cliente de terceiro. No Prompt de Comando como administrador:
:: 0x8 marca a fonte como cliente; syncfromflags:manual usa a lista definida acima
w32tm /config /manualpeerlist:"pool.ntp.br,0x8" /syncfromflags:manual /update
net stop w32time
net start w32time
w32tm /resync /rediscoverO w32tm /query /source fecha a conferência, respondendo com o servidor em uso:
w32tm /query /sourceSó digo uma coisa: esse artigo veio na hora certa! 😄
Referências
- UbuntuTime, no wiki da comunidade Ubuntu: cobre o caso de dual boot e traz a chave
RealTimeIsUniversal(em inglês) - Manual do
timedatectlno Ubuntu 24.04: a descrição deset-local-rtce o aviso sobre RTC em hora local (em inglês) - System time, no ArchWiki: a seção “UTC in Microsoft Windows” detalha o comportamento da chave (em inglês)
- Windows Time Service Tools and Settings, na Microsoft Learn: a referência do
w32tm, incluindo/resynce/query(em inglês) - NTP.br, guia de configuração para Linux: os servidores públicos do NIC.br e a configuração do
systemd-timesyncd - NTP.br, guia de configuração para Windows: a recomendação de usar o serviço de hora nativo, sem cliente de terceiro
- Tempo Universal Coordenado, na Wikipédia