Por que dois O / Ss na mesma máquina têm uma diferença de 1 hora?


0

Minha máquina possui dois sistemas operacionais, uma distribuição Linux (primária) e um Windows 7 (usado raramente).

Ambos os sistemas operacionais estão definidos no meu fuso horário (UTC + 1).

Dependendo de como eu defino a hora no BIOS, o Windows mostra a hora como 1 hora antes da hora atual ou o Linux 1 hora depois.

Por que isso acontece?

A máquina Windows geralmente inicia desconectada da Internet; o Linux, em vez disso, está conectado, portanto, corrige a data após um curto período de tempo, mas após a reinicialização, ele é configurado incorretamente novamente.

Edição: encontrado para ser uma duplicata de https://serverfault.com/questions/16107/why-does-ubuntu-9-04-reset-my-windows-clock

Respostas:


2

Eu posso pensar em algumas questões que podem estar em jogo aqui.

Primeiro, você pode ter o horário de verão ativado em um e não no outro, ou um de seus sistemas operacionais está configurado para o fuso horário errado.

O Linux pode estar assumindo que o relógio do hardware do seu computador está definido como UTC em vez de local, e o Windows pode pensar que está definido como local. Se você estiver no UTC + 1 ou no UTC-1, poderá ver esse comportamento. O Linux pode estar carregando o valor do relógio do hardware, ajustando-o para local, e depois transformando-o novamente no UTC antes de gravar no relógio do hardware no momento do desligamento.


Os fusos horários estão corretos para ambos, mas você está certo com o fato de os dois O / Ss interpretarem o relógio do hardware de maneiras diferentes. Não tenho certeza de como eu deveria corrigi-lo.
Marcus

Solução encontrada aqui: serverfault.com/questions/16107/…
Marcus

@ Marcus ele sobrevive à reinicialização? se sim, parabéns. Parece que eu estava muito atrasado. : \ - também /etc/default/rcSnão está presente em todos os sistemas - acho que é específico do Ubuntu. O Debian (do qual o Ubuntu é derivado) não o possui.
precisa saber é o seguinte

Sobreviveu! Estou muito feliz, pois, embora raramente, às vezes, eu usei para esquecê-lo (sendo 1 hora de atraso é bastante problemático ...)
Marcus

@ Marcus feliz em ouvir isso então. Feliz que você conseguiu. Às vezes era confuso para mim. Especialmente quando mudei de fuso horário
Wyatt8740

1

Sua distribuição Linux está assumindo que o relógio do BIOS está usando UTC e a instalação do Windows está assumindo que o horário do BIOS está no horário local.

Aqui está como eu o configurei no meu laptop com uma inicialização dupla: eu faço as alterações no lado do linux para usar a hora local em vez da UTC para o relógio do sistema. primeiro, execute um comando para que a hora seja definida corretamente no lado do linux, como root:

date -s "2 feb 2016 18:05:15"

hwclock --hctosys --localtimecopie as configurações de data / hora do BIOS para o seu computador e defina-as para a hora local. hwclock --systohc --localtimedeve definir a hora do BIOS no horário local em vez do UTC. Eu recomendaria definir o horário com o datecomando acima e executar: hwclock --systohc --localtime E TAMBÉM executar: hwclock --hctosys --localtime para garantir que / etc / adjtime tenha a última linha do arquivo dizendo 'LOCAL' em vez de 'UTC' ou algo assim. as --hctosys --localtimebandeiras juntas podem fazer isso programaticamente. É possível que datefaça isso sozinho, mas eu não verifiquei.

para verificar se a hora do sistema é realmente precisa no horário local. Não se preocupe com a formatação da string de configuração da data, ela é extremamente flexível. Como um exemplo de outras maneiras válidas de dizê-lo:

date -s "2 feb 2016 6:05:15 PM"
date -s "february 2, 2016 6:11:30 PM"
date -s "Tue Feb  2 18:11:30 EST 2016"

(Estou no horário padrão do leste, GMT -5)

Se você ainda tiver problemas, pode ser necessário selecionar novamente um fuso horário. No Debian ou derivados como o Ubuntu, você usa sudo dpkg-reconfigure tzdatapara alterar os fusos horários em uma interface ncurses.

Se você não tiver isso, tente encontrar seu arquivo de informações relevantes sobre o fuso horário. Na minha instalação é isso /usr/share/zoneinfo/America/Indiana/Indianapolis.

Depois de encontrá-lo, copie-o para /etc/localtime:

cp /usr/share/zoneinfo/America/Indiana/Indianapolis /etc/localtime

Eu garantiria que o tempo ainda esteja definido datecorretamente depois de fazer isso. Caso contrário, execute os dois primeiros comandos ( datee hwclock) novamente.

no linux deve fazer com que, a qualquer momento que você definir no linux, seja compartilhado corretamente com o Windows. Como alternativa, isso pode ser feito, mas é mais difícil configurar as janelas para usar o UTC. Como isso é feito, as alterações nas versões e janelas são conhecidas por reverter para o horário local após as atualizações.

Lembro-me de um computador particularmente teimoso em que todas as hwclockcoisas estavam sendo superadas, porque o computador estava buscando a hora atual na Internet com o NTP. A configuração do fuso horário era a única maneira de corrigir isso sem desabilitar completamente o NTP.

Enfim, isso é apenas um grande depósito de todas as minhas experiências passadas com o assunto. Um deles quase certamente funcionará. Eu tentaria o material do fuso horário primeiro e, em seguida, definitivamente o hwclock --systohc --localtimematerial depois que você terminar, para garantir que o relógio do BIOS esteja no horário local.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.