Force o Windows 8 a usar o UTC ao lidar com o relógio do BIOS

18

Eu tenho o Arch Linux + Windows 8 no meu laptop. Nas versões anteriores do Windows, existe um DWORD no registro ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal) que alterna entre horário local e UTC, mas isso parece não funcionar mais no Windows 8.

Agora estou recebendo a hora UTC no Windows, pois acha que o BIOS fornece a hora local, que é realmente a hora UTC, e após a reinicialização no Arch Linux, o relógio se torna a hora local-0400, porque o Arch acha que a BIOS está com a hora UTC correta.

Não quero permitir que o Arch Linux use a hora local. Sob esse pré-requisito, existe alguma solução possível?

jiehanzheng
fonte
11
A chave RealTimeIsUniversal funcionou bem para mim, inicializando o Arch Linux também.
numbers1311407

Respostas:

3

O RealTimeIsUniversal é realmente incorreto e não é uma solução oficialmente recomendada (talvez seja por isso que eles o desativaram no Win8?) Consulte o IBM PC Real Time Clock deve ser executado no UT e uma resposta de Raymond Chen aqui: Por que o Windows mantém o relógio do BIOS no horário local? . Até a presente data, acho que não há uma solução adequada para isso.

Karan
fonte
5
carrinho? nunca teve problemas com isso, e forçar o Windows a usar um relógio do sistema UTC é realmente a única solução sã. e a chave não está desabilitada no win8. A solução real é definir a chave do registro, desativar a sincronização de horário do Windows e deixar o Linux lidar com a sincronização se você inicializar com bastante frequência.
ovelha voadora
11
@flyingsheep Ao longo dos anos, alguns hotfixes foram lançados, consulte Status atual do suporte no Windows em cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html
Stijn
@ Stijn Ótimo link, acho que você deve transformá-lo em uma resposta para obter mais visibilidade.
Marc.2377
15

O serviço padrão do Windows Time sempre grava a hora local no relógio do hardware no desligamento, independentemente do que o registro diz sobre o tempo real estar no UTC. Fora desta ressalva, o Windows tratará o relógio de ponto do hardware corretamente, se o registro estiver definido corretamente. Tente o seguinte:

  1. Se o tempo estiver atrasado ao tentar que o Windows use o UTC, inicialize no Windows e defina o horário normalmente (fuso horário correto, sem regedit, serviço de horário do Windows ativado, sincronizado recentemente, etc.)
  2. Faça o regedit que você já mencionou
  3. Sincronize a hora w32tm /config /update
  4. Desativar o serviço de horário do Windows sc config w32time start= disabled
  5. Instale um cliente NTP de terceiros
  6. Verifique se ele funciona com uma reinicialização
JumperPunk
fonte
11
Apenas configure isso depois de o Windows acertar o relógio em cada desligamento. Encontrou o seguinte software NTP para Windows, que é muito fácil de instalar e configurar. meinbergglobal.com/english/sw/ntp.htm
Dracs
Esse software parece ser uma reembalagem da distribuição oficial do NTP, com alguns extras. Enfim, eu usei e também achei que funcionava.
David Z
10

RealTimeIsUniversalchave de registro ainda funciona no Windows 8 e 10! Apenas testei sozinho. As instruções para usar esse método são explicadas muitas vezes em todos os lugares, por exemplo, nesta resposta .

Vou replicar a resposta aqui:

  1. Win+ S, regedit, Enter.

  2. Navegue até a chave: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation.

  3. Crie um novo valor DWORD (32 bits), nomeie-o RealTimeIsUniversal.

  4. Defina seu valor como 1.

Depois disso, basta reiniciar sua máquina. Depois de voltar a funcionar, deixe o Windows definir a hora automaticamente (clique na hora atual na bandeja, Date and Time Settings> Set Time Automatically), desta vez não mexerá com ela.

TranslucentCloud
fonte
0

@jiehanzheng sim, se você usar o NTP no Windows, ele estragará o relógio. Parece que a melhor solução alternativa é executar o NTP em qualquer versão do * NIX que você estiver inicializando duas vezes, desabilitar o NTP no Windows e compensar usando o fuso horário necessário. Depois, basta ajustar o horário de verão manualmente com uma mudança de fuso horário no Windows, mas eh ..

wajeemba
fonte
0

RealTimeIsUniversalfunciona para mim. Para fazê-lo funcionar, após aplicar a entrada do registro, desligue o Windows (sem suspensão ou hibernação). Inicialize a máquina e entre no BIOS antes de inicializar no Windows, altere a hora no BIOS, salve e continue inicializando no Windows. Como alternativa, depois de desligar o Windows, inicialize no Linux e deixe a sincronização de tempo fazer seu trabalho. Se o horário for atualizado no Windows, o Windows atualizará de alguma forma um horário incorreto para o sistema após uma reinicialização.

user416162
fonte
11
Você poderia criar um link para fontes que explicam o RealTimeIsUniversal? Eu não sabia o que era até você mencioná-lo e, a partir de vários resultados, parece que ele vem com seu próprio conjunto de efeitos colaterais potencialmente negativos.
Killermist #
-1

O RealTimeIsUniversal funcionou para mim no Windows 10. E em meados de dezembro de 2016, ele também está funcionando para o meu Windows 7 Pro, sem reiniciar o Linux.

Kevin O'Gorman
fonte
-3

Você pode definir seu fuso horário com quatro horas de folga.

insira a descrição da imagem aqui

Caleb Jares
fonte
Solução inteligente ... mas o relógio do hardware e do sistema será interrompido novamente quando eu usar o NTP (Internet Time), certo?
jiehanzheng