Quem utiliza dual boot com Windows e Linux provavelmente já se deparou com um comportamento curioso: ao iniciar o Windows, o relógio do sistema aparece adiantado em algumas horas, enquanto no Linux tudo funciona corretamente.
Esse problema pode acontecer em diferentes distribuições, como Ubuntu, Linux Mint, Fedora, Big Linux e várias outras. Na maioria dos casos, ele não está ligado a um bug específico da distribuição, mas a uma diferença conceitual entre Windows e Linux na forma como cada sistema operacional interpreta o relógio de hardware do computador.
Neste artigo, você vai entender por que isso acontece, como Windows e Linux lidam de forma diferente com timezone e RTC, e qual é a solução mais recomendada do ponto de vista técnico.
O que é o RTC e qual seu papel no sistema?
Todo computador possui um RTC, sigla para Real-Time Clock. Ele também é conhecido como hardware clock.
Esse relógio é mantido pela bateria da placa-mãe e continua contando o tempo mesmo quando o computador está desligado. Ele fica armazenado no firmware, seja BIOS ou UEFI, e fornece a referência inicial de data e hora para o sistema operacional durante o boot.
O ponto crítico é que o RTC não armazena informação de timezone. Ele guarda apenas um valor bruto de data e hora.
A interpretação desse valor — se ele representa UTC ou horário local — é responsabilidade do sistema operacional.
É exatamente aqui que nasce o conflito entre Windows e Linux.
Como o Linux trata o horário e o timezone
Distribuições Linux e, de forma geral, sistemas Unix-like seguem uma abordagem historicamente consolidada para o controle de tempo.
No Linux, o RTC costuma ser tratado como estando em UTC, ou Coordinated Universal Time.
O sistema operacional aplica o offset de timezone em nível de software, utilizando bases como tzdata e serviços de sincronização via NTP, que também trabalham com UTC.
Na prática, o Linux lê o RTC como UTC durante a inicialização e converte esse valor para o horário local configurado no sistema.
Por exemplo, se o sistema estiver configurado para o horário de Brasília, o Linux aplica o offset correspondente ao fuso horário brasileiro e exibe a hora correta para o usuário.
Quando grava o horário de volta no hardware, ele mantém o padrão UTC.
Essa abordagem é robusta e faz bastante sentido em ambientes com múltiplos sistemas, servidores, mudanças frequentes de fuso horário e necessidade de sincronização precisa de tempo.
Como o Windows trata o horário do sistema
O Windows adota uma lógica diferente.
Por padrão, ele assume que o RTC está configurado em horário local. Isso significa que o valor lido do relógio de hardware já é considerado o horário final a ser exibido, sem uma conversão inicial de UTC para o fuso local.
Essa decisão tem raízes históricas, ligadas à compatibilidade com versões antigas do DOS e do próprio Windows, além de cenários onde apenas um sistema operacional é utilizado na máquina.
Quando o computador roda apenas Windows, isso geralmente não causa problema. O conflito aparece quando o Windows passa a dividir o mesmo hardware com um sistema que usa outra convenção.
Por que o relógio fica adiantado no dual boot Windows e Linux?
Em um sistema configurado para o fuso horário do Brasil, geralmente UTC−3, a sequência típica é a seguinte:
- O Linux inicia o sistema.
- Ele sincroniza o horário via NTP.
- Ele grava o horário correto em UTC no RTC.
- Depois, o computador é reiniciado.
- O Windows inicia e lê o RTC como se aquele valor estivesse em horário local.
Veja um exemplo prático:
- Horário real em Brasília: 15h
- UTC correspondente: 18h
- Linux grava 18h no RTC
- Windows lê 18h como horário local
O resultado é um relógio exibindo 3 horas a mais no Windows.
Não se trata de erro de sincronização, nem necessariamente de configuração incorreta de timezone. O problema nasce do conflito entre dois modelos diferentes de tratamento do tempo.
Pra facilitar, veja o infográfico a seguir:

Solução recomendada: configurar o Windows para usar UTC
Do ponto de vista técnico, a solução mais limpa é alinhar o Windows ao comportamento do Linux, fazendo com que ele passe a interpretar o RTC como UTC.
Isso pode ser feito por meio de uma configuração no Registro do Windows.
Como configurar o Windows para usar UTC
Abra o Editor do Registro do Windows com privilégios de administrador.
Para isso, pressione Win + R, digite:
regedit
Depois navegue até o caminho:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
Dentro dessa chave, crie um novo valor do tipo DWORD (32 bits) com o nome:
RealTimeIsUniversal
Defina o valor como:
1
Depois disso, reinicie o computador.
Com essa configuração, o Windows passa a tratar o RTC como UTC e aplica corretamente o offset de timezone. Isso elimina o problema do relógio adiantado em dual boot.

Solução alternativa: configurar o Linux para usar horário local
Também é possível fazer o caminho inverso: configurar o Linux para tratar o RTC como horário local, seguindo o comportamento padrão do Windows.
O comando seria:
timedatectl set-local-rtc 1 --adjust-system-clock
Apesar de funcionar, essa abordagem não é a mais recomendada.
Ela vai contra o padrão adotado por sistemas Unix-like, pode causar inconsistências com sincronização via NTP e pode gerar problemas em mudanças de timezone ou horário de verão em alguns cenários.
Por isso, essa opção deve ser tratada como um workaround, não como a solução ideal.
Qual solução eu recomendo?
Se você usa dual boot com Windows e Linux, a melhor solução é configurar o Windows para interpretar o relógio de hardware como UTC.
Essa abordagem mantém o Linux dentro do padrão esperado, evita problemas com sincronização de tempo e deixa os dois sistemas trabalhando com a mesma lógica.
Em outras palavras: em vez de adaptar o Linux ao comportamento histórico do Windows, é mais consistente fazer o Windows trabalhar com UTC.
Conclusão
O relógio adiantado em sistemas dual boot não é exatamente um bug. Ele é consequência de decisões diferentes tomadas por Windows e Linux ao interpretar o relógio de hardware do computador.
O Linux trabalha com UTC no hardware e aplica o timezone em software. O Windows, por padrão, assume que o relógio de hardware já está em horário local.
Quando os dois sistemas dividem a mesma máquina, essa diferença pode fazer o relógio do Windows aparecer algumas horas adiantado ou atrasado.
Ajustar o Windows para usar UTC é a solução mais limpa, previsível e tecnicamente consistente.
Se você trabalha com Linux, dual boot, desenvolvimento ou manutenção de sistemas, entender esse detalhe ajuda a evitar um problema simples, mas bastante confuso para quem encontra isso pela primeira vez.
Próximo passo
Se você gosta de entender Linux de forma prática, sem decorar comandos soltos, acompanhe os conteúdos da Coisa de Dev Academy. A proposta é aprender tecnologia com exemplos reais, contexto e aplicação no dia a dia.


Deixe um comentário