Questão A hora do relógio está desligada na inicialização dupla


Sistema de boot duplo Windows XP Pro e Ubuntu 12.04.

Eu tenho o BIOS definido para o tempo correto e o Ubuntu definido para o horário da costa leste dos EUA. O Ubuntu inicializará e o tempo será desligado em -4 horas. Se eu corrigir o horário no Ubuntu, quando eu inicializá-lo no Windows XP, o tempo será reduzido em + 4 horas.

Esta é uma nova instalação do 12.04. Eu não tive esse problema antes de reinstalar o Ubuntu.


274
2017-07-28 17:48


origem




Respostas:


https://help.ubuntu.com/community/UbuntuTime#Multiple_Boot_Systems_Time_Conflicts

Conflitos de tempo com vários sistemas de inicialização

Sistemas operacionais armazenam e recuperam o tempo no relógio do hardware   localizado em sua placa-mãe para que ele possa acompanhar o tempo mesmo   quando o sistema não tem energia. A maioria dos sistemas operacionais   (Linux / Unix / Mac) armazena a hora no relógio do hardware como UTC de   padrão, embora alguns sistemas (principalmente o Microsoft Windows) armazenem   hora no relógio do hardware como a hora 'local'. Isso causa problemas   em um sistema de inicialização dupla, se ambos os sistemas visualizarem o relógio de hardware   diferentemente.

A vantagem de ter o relógio do hardware como UTC é que você não   precisa mudar o relógio do hardware quando se deslocam entre fusos horários ou   quando o Horário de Verão (DST) começa ou termina como o UTC não tem   Deslocamentos de horário de verão ou fuso horário.

Mudar o Linux para usar o horário local é mais fácil e confiável do que   alterando o Windows para usar o UTC, então os sistemas Linux / Windows de inicialização dupla   para usar a hora local.

Desde Intrepid (8.10), UTC = yes é o padrão.

Faça o Windows usar o UTC

Nota: Este método não era inicialmente suportado no Windows Vista e Server 2008, mas voltou com o Vista SP2, Windows 7, Server 2008 R2   e o Windows 8 / 8.1.

Para fazer o MS Windows calcular o tempo do relógio do hardware como UTC.

Crie um arquivo chamado WindowsTimeFixUTC.reg com o seguinte   conteúdo e, em seguida, clique duas vezes nele para mesclar o conteúdo com o   registro:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=dword:00000001

Nota: O serviço de tempo do Windows ainda gravará a hora local no RTC, independentemente da configuração do registro acima no desligamento, por isso é útil   para desabilitar o Windows Time service com este comando (se a sincronização de horário for   ainda é necessário, enquanto no Windows usar qualquer sincronização de tempo de terceiros   solução):

sc config w32time start= disabled

Invertendo a mudança
 Você pode criar um arquivo com o seguinte   conteúdo e, em seguida, clique duas vezes nele para mesclar as alterações originais, como   acima:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=-

Se o serviço de tempo do Windows estiver desativado, ative-o novamente   comando:

sc config w32time start= demand

Faça o Linux usar o horário 'Local'

Para informar ao seu sistema Ubuntu que o relógio do hardware está configurado para 'local'   Tempo:

Sistemas pré-Ubuntu 15.04 (por exemplo, Ubuntu 14.04 LTS):

  1. editar /etc/default/rcS
  2. adicionar ou alterar a seguinte seção

    # Set UTC=yes if your hardware clock is set to UTC (GMT)
    UTC=no
    

Sistemas Ubuntu 15.04 e acima (por exemplo, Ubuntu 16.04 LTS):

  1. abra um terminal e execute o seguinte comando

    timedatectl set-local-rtc 1
    

232
2017-07-28 18:07



Oh senhor. Eu não posso acreditam eles eram burros o suficiente para usar o horário local em um relógio de hardware. Por que você nunca faria isso? - iono
@twome porque desde que não havia muito no modo de rede nos primeiros dias do MS-DOS, e não teria sido comum mover um PC tão longe que movesse fusos horários. (E sim, mesmo considerando essa história, ainda não foi o melhor movimento). - Jon Hanna
@twome embora eu concorde com o seu relógio de hardware permanecendo como Universal, uma vez que não mantém informações de fuso horário, há alguns problemas com isso: A) BIOS / UEFI tem vários recursos, como temporizadores de auto-despertar / dormir, onde você definir horários para esses gatilhos. Seria estranho definir esses horários no UTC - pelo menos para o usuário médio. B) Como Jon disse acima, motivos de compatibilidade retroativa. - Shahriyar Imanov
No Windows PowerShell, execute este comando para atualizar a propriedade de registro mencionada acima: New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation -Name RealTimeIsUniversal -PropertyType DWord -Value 00000001 - Anatoly Mironov
Para aqueles que percorrem o texto, você só precisa alterar as configurações em um dos sistemas operacionais, não em ambos. - Alexander Revo


Para definir o relógio do BIOS para a hora local em vez de UTC em uma versão baseada em systemd (15.04 e superior), você terá que usar o timedatectlcomando. De acordo com o Arch Wiki:

Você pode definir o padrão de tempo do relógio do hardware através da linha de comando.   Você pode verificar o que você definiu para usar:

$ timedatectl | grep local

O relógio do hardware pode ser consultado e definido com o timedatectl   comando. Para alterar o tempo padrão do relógio do hardware para o horário local, use:

# timedatectl set-local-rtc 1

Se você quiser reverter para o relógio de hardware que está no UTC, faça:

# timedatectl set-local-rtc 0

59
2018-01-13 03:40



No Ubuntu 16.10 ajudou a fazer "hwclock --systohc --localtime". Isso grava a "parte local" em / etc / adjtime e, portanto, torna-a permanente. - user1050755
@ user1050755 é que antes, depois ou em vez do comando timedatectl? - nasch


Seu fuso horário é Oriental, que atualmente é o EDT (Horário de Verão do Leste dos EUA). EDT é UTC menos quatro horas, o mesmo que o deslocamento que você está experimentando.

Quando isso acontece em um sistema de inicialização dupla, geralmente é porque um sistema operacional acha que o relógio do hardware rastreia a hora local, enquanto o outro sistema operacional acha que o relógio do hardware rastreia o UTC.

No seu caso, o relógio do seu hardware provavelmente está configurado para a hora local e:

  • Windows está definido para utilizar a hora local, que (dadas as suas definições de hora) é corrigir.
  • O Ubuntu está configurado para usar o UTC, que (dadas as configurações de tempo) é incorreta.

Se você fosse apenas redefinir o tempo no sistema Ubuntu, manualmente ou automaticamente, então seria errado no Windows, então não é uma boa solução.

Em vez disso, a melhor solução é provavelmente reconfigure o Ubuntu para tratar a hora do relógio do hardware como hora local (então você pode deixar a configuração do Windows e o tempo do relógio do seu hardware).

Para fazer isso, edite /etc/default/rcS como root e verifique se ele tem UTC=no:

  1. pressione Alt+F2.

  2. Tipo gksu gedit /etc/default/rcS e pressione Entrar.

  3. Você provavelmente verá isso:

    # assume that the BIOS clock is set to UTC time (recommended)
    UTC=yes
    
    • Se você fizer isso, mude UTC=yes para UTC=no. (Ou você pode querer adicionar um comentário também, alterando-o para algo como UTC=no # changed to accommodate Windows system. Tudo em uma linha depois de um # caractere é um comentário e existe apenas para tornar suas configurações mais legíveis para humanos.)
    • Se você não fizer isso, procure por UTC= linha. Se não for comentado (ou seja, não tem # no começo), mude de acordo. Se for comentado, remova o comentário removendo o # e certifique-se de que diz UTC=no.
  4. Salve o arquivo e saia do editor de texto.

  5. Reinicialize para aplicar suas alterações e verifique se a hora está funcionando corretamente agora em ambos os sistemas operacionais.

Fonte:  https://help.ubuntu.com/community/UbuntuTime#Make_Linux_use_.27Local.27_time 

(Mas isso é muito geral; escrevi esta resposta para aplicar especificamente à sua situação, o que é um problema comum.)


32
2017-07-28 18:16



Observe que isso também pode ocorrer quando você atualiza de uma versão do Ubuntu para a próxima, como aconteceu comigo. Posso recomendar a execução da correção acima e também sincronizar manualmente o seu relógio como nesta resposta (ajustando-o para funcionar com o systemd): askubuntu.com/a/254846/139735 - starbeamrainbowlabs
Esta deve ser a resposta aceita. Eu tinha o Windows instalado e funcionando bem, então eu instalei o Ubuntu e os relógios ficaram malucos - não consigo ver uma razão pela qual eu deveria modificar as configurações do Windows se fosse claramente a adição do linux que quebrou a minha configuração. - Przemek D


A correção / etc / rcS não funcionou na minha instalação do Win7 / Ubuntu 14.04x64, nem correções através da GUI do relógio. Como a raiz do problema é a hora do VS do UTC do BIOS, e o Windows é um problema quando se trata de usar o UTC, acabei de escolher um ponto no mapa que usa UTC + 0 (sem alteração entre o BIOS e o horário UTC) .

Tente mudar sua localização para Reykjavik (a capital da Islândia). Voila! Seu horário do Ubuntu será alterado para corresponder ao seu tempo de BIOS.


12
2017-07-03 17:49



Haha! Impressionante. : D Eu realmente não me importo com a minha localização. Esta foi a correção de dois segundos. Muito obrigado. - Pale Blue Dot