Tempos diferentes para Windows e Ubuntu. O tempo se perde no Ubuntu e no Windows

Há momentos em que, ao instalar um segundo sistema, isso geralmente acontece linux, o tempo nos sistemas começa a dar errado, por exemplo, você estava trabalhando sob seu comando linux e decidi mudar para janelas, e descobri que a hora e a data estão completamente erradas, ou vice-versa, isso se deve a diferenças no formato da hora, esses sistemas operacionais funcionam de forma diferente, um pouco de teoria, e então, vamos começar com linux, esses sistemas operacionais funcionam com UTC
UTC- os relógios de hardware e software são baseados no horário de Greenwich. Ou seja, o relógio fornece a hora universal no fuso horário zero. Por exemplo, se o seu fuso horário for GMT+3, Moscou, o relógio estará três horas atrasado. E os usuários adicionam localmente a esse horário uma correção para o fuso horário, por exemplo, mais +3. Cada usuário adiciona a alteração que necessita. Isso é feito nos servidores para que cada usuário possa obter a hora correta para seu fuso horário.
janelas por sua vez trabalha com horário local
horário local- nesta versão, o relógio do software também funciona de acordo com o horário de Greenwich, mas o relógio do hardware funciona de acordo com o fuso horário local. Não há diferença para o usuário; você ainda precisa adicionar um ajuste ao seu fuso horário. Mas ao carregar e sincronizar a hora, o Windows subtrai 3 horas (ou algum outro ajuste de fuso horário) da hora do hardware para que a hora do software esteja correta.
então, parece que resolvemos a teoria, agora vamos passar para a prática, e assim, no início vamos carregar nosso janelas, inicie o console como administrador e execute comandos para um sistema de 32 bits
Reg adicionar HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
ou para 64 bits
Reg adicionar HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1
mas o relógio ainda estará sincronizado com a hora do servidor; para fazer isso, desligue o serviço de sincronização do relógio
sc config w32time start = desabilitado
Agora reinicializamos nosso sistema e iniciamos linux faça login no terminal em raiz e execute os comandos
timedatectl set-local-rtc 1 --adjust-system-clock
E
sed -i "s/UTC=sim/UTC=não/" /etc/default/rcS
veja o status do relógio do hardware
sudo timedatectl
Agora reiniciamos novamente, entramos na bios e configuramos a data e hora, verifique...
se por algum motivo precisarmos desabilitar tudo isso, então executamos os comandos no Linux
timedatectl set-local-rtc 0
E
sed -i "s/UTC=não/UTC=sim/" /etc/default/rcS
no Windows, console como administrador
Reg adicionar HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0
E
sc config w32time start = demanda
Outra opção seria a seguinte, em linux debian e derivados
execute o comando para definir a hora local
sudo hwclock --localtime --adjust
se quisermos devolvê-lo
sudo hwclock --utc --adjust
agora vamos verificar
timedatectl | grep local
se a resposta
RTC em TZ local: não
então nosso tempo está passando de acordo com Greenwich, mas se a resposta
RTC em TZ local: sim
isso significa que nosso tempo está passando de acordo com o sistema estabelecido
isso é tudo, acho que foi útil para você

No modo UEFI (inicialização segura). A hora do meu BIOS está correta.

Quando eu inicializo no Ubuntu e depois inicializo no Windows 10, ele mostra a hora errada. Tenho que consertar manualmente ou online no Windows 10 e quando reinicio no Windows 10 não há problema. O relógio mostra a hora correta. E então quando eu reinicio no Linux o relógio está correto, mas ao voltar para o Windows 10 o relógio começa a funcionar novamente.

Os sistemas operacionais armazenam e recuperam a hora em um relógio de hardware localizado na placa-mãe para controlar a hora mesmo quando o sistema não está ligado. A maioria dos sistemas operacionais (Linux/Unix/Mac) armazena a hora no relógio do hardware como UTC por padrão, embora alguns sistemas (principalmente o Microsoft Windows) armazenem a hora no relógio do hardware como hora "local". Isso causará problemas em um sistema de inicialização dupla se ambos os sistemas tratarem o relógio do hardware de maneira diferente.

A vantagem de usar um relógio de hardware como UTC é que você não precisa alterar o relógio de hardware ao mover-se entre fusos horários ou quando o horário de verão (DST) começa ou termina, já que o UTC não tem horário ou deslocamento de horário.

Alterar o Linux para usar a hora local é mais fácil e confiável do que alterar o Windows para usar o UTC, portanto, os sistemas Linux/Windows de inicialização dupla normalmente usam a hora local.

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

Faça o Windows usar UTC

Observação. Este método originalmente não era compatível com Windows Vista e Server 2008, mas retornou com Vista SP2, Windows 7, Server 2008 R2 e Windows 8/8.1.

Para que o MS Windows calcule a hora a partir do relógio do hardware no formato UTC.

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

Editor de registro do Windows versão 5.00 "RealTimeIsUniversal"=dword:00000001

Observação. O serviço de horário do Windows ainda registrará a hora local no RTC, independentemente da configuração de registro acima, quando desligado, portanto, é conveniente desabilitar o serviço de horário do Windows usando este comando (se a sincronização de horário for necessária enquanto o Windows estiver usando alguma sincronização de horário de terceiros ):

Configuração sc w32time start = desativado

Cancelar alteração

Você pode criar um arquivo com o seguinte conteúdo e clicar duas vezes nele para mesclar as alterações originais conforme acima:

Editor de registro do Windows versão 5.00 "RealTimeIsUniversal"=-

Se o serviço Windows Time foi desabilitado, habilite-o novamente usando o comando:

Configuração sc w32time start = demanda

Torne o horário "local" do Linux

Para informar ao seu sistema Ubuntu que o relógio do hardware está configurado para a hora "local":

  1. altere /etc/default/rcS
  2. adicione ou altere a seguinte seção

    # Defina UTC=yes se o relógio do seu hardware estiver configurado para UTC (GMT) UTC=no

Ubuntu 15.04 e sistemas superiores (por exemplo, Ubuntu 16.04 LTS):

    abra um terminal e execute o seguinte comando

    Se deseja ver em nosso site respostas às suas dúvidas sobre tudo relacionado à tecnologia Apple, ao sistema operacional Mac OS X (e seu lançamento em um PC), escreva-nos via ou.

    Recebemos a seguinte pergunta:

    boa tarde!
    Hackintosh roda Snow Leopard, Windows 7 e Ubuntu. O tempo se perde constantemente após uma reinicialização ((o Mac OS sempre atrasa de 4 a 5 horas! Diga-me como resolver o problema

    Um problema com sincronização de tempoé relevante não apenas para Hackintoshes, mas também para Macs reais, nos quais o Windows roda via Boot Camp. A razão para isso é muito simples: o Mac OS X sempre assume que o tempo registrado no BIOS (ou EFI) está escrito lá no formato UTC- em outras palavras, segundo Greenwich. A isso ela adiciona a correção apropriada para o fuso horário.

    Mas o Windows faz as coisas de maneira diferente: lê diretamente tempo do BIOS. E se você alterar esse horário, ou ele for sincronizado automaticamente, ele ficará gravado na BIOS no formato corrigido: UTC+correção.

    Como resolver esta contradição? Existem duas abordagens: uma do lado do Mac OS, outra do lado do Windows e Linux.

    Solução usando Mac OS X

    Digamos desde já que este não é o melhor caminho. O resultado final é que, para o Mac OS X, definimos o fuso horário para o horário de Greenwich. Por exemplo, nas configurações (remoto data e hora, aba Fuso horário) selecione como sua localidade Reykjavík.

    Além disso, na aba "Data e hora" Certifique-se de desativar a sincronização automática de horário, caso contrário, tudo ficará ainda pior do que antes.

    Após essas etapas, a hora no Windows estará sempre correta e o Mac OS X não irá atrapalhar. Mas por que esse não é o melhor caminho? O fato é que se você sincronizar algum gadget com o Mac OS X - por exemplo, um iPhone, o fuso horário errado distorcerá muitos dados importantes. Por exemplo, o horário de entrada de SMS também será Greenwich.

    Solução usando Windows e Linux

    Outra maneira é fazer com que o Windows e o Linux leiam a hora no BIOS da mesma forma que o Mac OS. Felizmente, essa oportunidade é realmente oferecida, mas está profundamente oculta.

    No Windows, você terá que executar o programa na janela Executar regeditEditor de registro. Então vá para o tópico \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation e crie um valor DWORD lá com o nome Tempo Real é Universal e um valor igual a um:

    No Linux (pelo menos no Ubuntu), você precisa editar o arquivo /etc/default/rcS em qualquer editor de texto e substitua o conteúdo do parâmetro "UTC=não" sobre "UTC = sim".

    Depois disso, reinicie o Mac OS X e defina seu fuso horário nativo, ao mesmo tempo em que você pode ativar a sincronização automática de horário via Internet. Após reiniciar no Windows e no Ubuntu você verá exatamente a mesma hora.

    O uso de vários sistemas operacionais no mesmo computador às vezes faz com que eles entrem em conflito entre si quando usam a mesma coisa. Às vezes diz respeito a algo tão simples como o tempo. Mesmo sistemas operacionais de PC populares como Windows e Ubuntu não conseguem se dar bem e mudam constantemente o horário um do outro para o horário incorreto.

    As razões para este fenômeno são na verdade simples: o Windows percebe a hora do sistema (que é exibida nas configurações do CMOS) como local (levando em consideração o fuso horário), e o Ubuntu - de acordo com o UTC (Greenwich Mean Time, sem levar em conta o fuso horário). Por causa disso, eles ajustam a hora do sistema de acordo com sua lógica, violando a lógica um do outro.

    A solução para o problema também é simples: forçar o Windows a adicionar um deslocamento de fuso horário à hora do sistema ou impedir que o Ubuntu adicione esse deslocamento.

    Configurações no Ubuntu

    A partir da versão 16.04, as configurações de exibição da hora podem ser alteradas usando dois comandos.

    Ativando a exibição da hora local:
    sudo hwclock --localtime --adjust

    Habilitando exibição UTC:
    sudo hwclock --utc --adjust

    Nas versões mais antigas do Ubuntu você precisa editar o arquivo rtC:

    sudo nano /etc/default/rcS

    Você precisa adicionar (para exibir a hora local) ou remover esta linha (para exibir a hora UTC):

    Configurações no Windows

    No Windows, quase todas as configurações do sistema são editadas no registro; TimeZoneInformation, necessário nesta situação, não é exceção. Ele está localizado no registro neste endereço:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

    Aqui você precisa adicionar ou alterar o parâmetro RealTimeIsUniversal. Seu tipo é DWORD. Para que a hora do sistema seja lida em UTC, é necessário definir o valor como 1, para reconhecê-lo como local é necessário definir o valor como 0 ou remover completamente este parâmetro.

    O Editor do Registro pode ser iniciado usando o comando regedit.