Por que dois sistemas operacionais na mesma máquina têm uma diferença de relógio de 1 hora?

Por que dois sistemas operacionais na mesma máquina têm uma diferença de relógio de 1 hora?

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

Ambos os O/Ss estão definidos no meu fuso horário (UTC+1).

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

Por que isso acontece?

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

EDIT: Achei que era uma duplicata dehttps://serverfault.com/questions/16107/why-does-ubuntu-9-04-reset-my-windows-clock

Responder1

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á configurado para UTC em vez de local, e o Windows pode pensar que está configurado para local. Se você estiver em UTC+1 ou UTC-1, poderá ver esse comportamento. O Linux pode estar carregando o valor do relógio do hardware, ajustando-o para ser local e depois transformando-o de volta para UTC antes de gravar no relógio do hardware no momento do desligamento.

Responder2

Sua distribuição Linux está assumindo que o relógio do BIOS está usando UTC, e a instalação do Windows está assumindo que a hora do BIOS está na hora local.

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

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

hwclock --hctosys --localtimevocê deve copiar as configurações de data/hora do BIOS para o seu computador e configurá-las para a hora local. hwclock --systohc --localtimedeve definir a hora do BIOS no horário local em vez de UTC. Eu recomendaria definir a hora com o datecomando acima e, em seguida, 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 parecido. os --hctosys --localtimesinalizadores juntos podem fazer isso programaticamente. É possível que datefaça isso sozinho, mas não verifiquei.

para verificar se a hora do sistema está realmente precisa na hora local. Não se preocupe com a formatação da string de configuração de data, ela é extremamente flexível. Como exemplo de outras maneiras válidas de dizer isso:

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 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 o arquivo de informações de fuso horário relevante. 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 me certificaria de que o tempo ainda estivesse definido datecorretamente depois de fazer isso. Caso contrário, execute os dois primeiros comandos ( datee hwclock) novamente.

no Linux deve fazer com que qualquer horário que você definir no Linux seja compartilhado com o Windows corretamente. Alternativamente, isso pode ser feito, mas é mais difícil configurar o Windows para usar o UTC. Sabe-se que a forma como isso é feito altera as versões e o Windows reverte para a hora local após as atualizações.

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

De qualquer forma, isso é apenas um grande despejo de todas as minhas experiências anteriores com o assunto. Um deles quase certamente funcionará. Eu tentaria primeiro o fuso horário e, definitivamente, tentaria hwclock --systohc --localtimedepois de terminar para ter certeza de que o relógio do BIOS está no horário local.

informação relacionada