Hora diferente no Windows e Linux Mint

18

Instalei o Linux Mint primeiro no meu Acer Aspire 4930 e depois inicializei duas vezes com o Windows 7.

Eu sempre vejo a hora correta no Linux Mint, mas, ao inicializar no Windows, a hora é alterada em algumas horas, mesmo após a redefinição da hora, na reinicialização, ela mostra uma hora errada novamente.


Questões:

  1. Por que isso está acontecendo?

  2. O que posso fazer sobre isso?

Balístico
fonte

Respostas:

17

No Windows, o relógio RTC do sistema é tradicionalmente mantido no horário local. No Unix e Linux, é tradicionalmente mantido no UTC e /etc/localtimeé usado para indicar o fuso horário atual, para que o horário exibido esteja correto.

Essas duas visões de mundo colidem em configurações de inicialização dupla porque há apenas um RTC. Normalmente, você diz ao Linux para assumir que o RTC é hora local (porque o Windows não pode ser informado). Isso varia de um Linux para outro, mas desde que Mint é como Ubuntu provavelmente você pode definir UTC=nono /etc/default/rcS. Depois, você pode ajustar o relógio para a hora local no Windows e Linux, depois disso.


Nota do Editor :

Esse arquivo não está presente desde o Linux Mint 19 (ou mais precisamente desde a base do Ubuntu 18.04):

/etc/default/rcS
aecolley
fonte
2
O UTC já está definido como não, a diferença horária ainda está lá.
22412 Ballistic
5

Mint 18.2 O KDE parece estar imune a outras correções (incluindo outras encontradas em uma pesquisa). Os arquivos mencionados nas respostas do aecolley e do error404 não existem mais ou parecem não estar mais onde a configuração é referenciada, pelo menos na versão atual do KDE. O comando na resposta de Julie Pelletier funcionou para o 18.2 Cinnamon, mas não para o 18.2 KDE.

Depois de tentar meia dúzia de soluções sugeridas, o seguinte corrigiu o 18.2 KDE. Com a hora correta exibida, execute o seguinte comando do terminal:

timedatectl set-local-rtc 1 --adjust-system-clock

Fonte: Dicas e truques para o Linux Mint após a instalação [Mint 18 - Cinnamon Edition]

Isso também deve funcionar para o Canela como uma solução alternativa, e eu assumo outros DE também.

Notas do Editor:

  • Não há necessidade sudo, execute esse comando como seu usuário.

  • Ele persiste na reinicialização, deve ser permanente.

  • Testado no Linux Mint 19.1 Cinnamon, baseado no Ubuntu 18.04.

fixer1234
fonte
Eu confirmo, ele funciona no Mint 18.3 Cinnamon.
dchrome
@ Velastimil, já faz um tempo desde que eu fiz isso. Lembro-me de que o sudo não é necessário (se fosse, eu o teria incluído na resposta e correções semelhantes também não se referem ao sudo, por isso tenho certeza de que não é). E sim, isso persiste.
fixer1234 11/02
@ fixer1234 Muito obrigado, companheiro! Você salvou meu dia e acho que todos estão :)
LinuxSecurityFreak
3

A maneira mais genérica de fazer isso é com:

hwclock --systohc --localtime

que é persistente nas reinicializações e funciona na maioria dos sistemas.

Julie Pelletier
fonte
Se o relógio exibir a hora correta no momento, o comando que você precisa é realmente o hwclock --systohc --localtimeque definirá o relógio do hardware para a hora local usando o valor atualmente exibido pelo sistema. No entanto, se o relógio estiver incorreto no momento (ou seja, o relógio do hardware for hora local, mas o sistema adicionar o deslocamento para o fuso horário, resultando em um valor exibido incorretamente), será necessário hwclock --hctosys --localtime.
youen
@ youen, eu tive essa situação e sua modificação acabou dando um tempo na outra direção. A solução para mim foi redefinir o relógio para a hora correta e depois usar o comando na resposta de Julie.
fixer1234
@ fixer1234 OK, estranho. Para ser sincero, não tentei o segundo comando no meu comentário, já que já tinha acertado o meu relógio até então. Acredito que, no entanto, executar qualquer um desses comandos e, em seguida, ajustar o relógio para a hora correta exibida, fará o truque (executar o primeiro comando novamente provavelmente não seria necessário se você já tivesse executado o segundo). Ainda bem que funcionou para você no final :)
youen 28/10
1

ATENÇÃO

Esse método é defeituoso nas versões anteriores ao 7 do Windows, mas resolve o problema no lado Windows da equação, e não no Linux: você não precisa configurar o Linux para usar o horário local .


Extraído da mais gloriosa e estimada Arch Linux Wiki :

Um motivo pelo qual os usuários geralmente definem o RTC no horário local é a inicialização dupla com o Windows (que usa horário local).

No entanto, o Windows [pode manipular o RTC como UTC] com uma correção simples do registro. É recomendável configurar o Windows para usar o UTC, em vez do Linux para usar o horário local.

Usando regedit, adicione um DWORDvalor com valor hexadecimal 1ao registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal

Você pode fazer isso em um prompt de comando do administrador executando:

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

Como alternativa, crie um arquivo * .reg (na área de trabalho) com o seguinte conteúdo e clique duas vezes nele para importá-lo para o registro:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=dword:00000001

Se o exposto acima parece não ter efeito, e uma variante de 64 bits do Windows estiver sendo usada, o uso de um QWORDvalor em vez de um DWORDvalor pode resolver o problema.

Se o Windows solicitar a atualização do relógio devido a alterações no horário de verão, deixe-o. Ele deixará o relógio no UTC como esperado, corrigindo apenas a hora exibida.

O relógio do hardware e a hora do relógio do sistema podem precisar ser atualizados após a configuração desse valor. Se você estiver tendo problemas com o deslocamento da hora, tente reinstalar o tzdata e defina seu fuso horário novamente:

# timedatectl set-timezone America/Los_Angeles
Alexej Magura
fonte
Na verdade, eu tenho tido esse mesmo problema em minha própria máquina Windows, mas até agora apenas o ignorei; No entanto, vou ver se esse método funciona e relatar minhas descobertas.
Alexej Magura
11
Funciona para mim. Muito Obrigado! Dessa forma, não preciso modificar todas as instalações do Linux existentes no meu PC.
Lokesh
0

Alterar (como raiz) a /etc/timeadjvariável de UTCpara LOCAL.

Isso resolveu o problema sem precisar mexer no regedit no lado do Windows.

Erro 404
fonte
0

Execute um destes dois comandos que correspondem à sua hora local

timedatectl set-local-rtc 1 --adjust-system-clock

'ou'

timedatectl set-local-rtc 0 --adjust-system-clock
Atul6.Singh
fonte