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

0

Minha máquina tem dois O / S, uma distribuição Linux (principal) e um Windows 7 (usado raramente).

Ambas O / Ss estão definidas no meu fuso horário (UTC + 1).

Dependendo de como eu definir 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 começa desconectada da Internet; o Linux está conectado, então corrige a data após um curto período de tempo, mas após a reinicialização, ela é configurada incorretamente novamente.

EDIT: Encontrado para ser uma cópia do link

    
por Marcus 01.02.2016 / 22:21

2 respostas

2

Posso pensar em alguns problemas 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 supondo que o relógio de hardware do seu computador esteja configurado para UTC em vez de local, e o Windows pode achar que está definido como local. Se você estiver na UTC + 1 ou UTC-1, poderá ver esse comportamento. O Linux pode estar carregando o valor do clock do hardware, ajustando-o para ser local e, em seguida, transformando-o de volta para UTC antes de gravar no clock do hardware no momento do desligamento.

    
por 01.02.2016 / 22:26
1

Sua distro linux está supondo que o clock do seu BIOS está usando o UTC, e a instalação do Windows está assumindo que o horário do seu BIOS está no horário local.

Veja como eu o configurei no meu laptop com uma inicialização dupla: Eu faço as mudanças no lado do linux para usar o localtime em vez do UTC para o clock 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 --localtime deve copiar as configurações de data / hora do BIOS para o seu computador e defini-las para a hora local. hwclock --systohc --localtime deve definir o horário do BIOS no horário local em vez do UTC. Eu recomendaria definir a hora com o comando date acima e, em seguida, executando:     hwclock --systohc --localtime E também correndo:     hwclock --hctosys --localtime para ter certeza que o / etc / adjtime tem a última linha do arquivo dizendo 'LOCAL' ao invés de 'UTC' ou qualquer coisa assim. Os --hctosys --localtime sinalizadores juntos podem realizar isso programaticamente. É possível que date faça isso sozinho, mas eu não verifiquei.

para verificar se a hora do sistema é realmente exata no horário local. Não se preocupe em como a string de configuração de data é formatada, é extremamente flexível. Como um exemplo de outras formas 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, talvez seja necessário selecionar novamente um fuso horário. No Debian ou derivados como o Ubuntu, você usa sudo dpkg-reconfigure tzdata para mudar os fusos horários em uma interface ncurses.

Se você não tem 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 .

Assim que o encontrar, copie para /etc/localtime :

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

Assegure-me de que a hora ainda esteja definida com date corretamente depois de fazer isso. Se não estiver, execute os dois primeiros comandos ( date e hwclock ) novamente.

no linux deve fazê-lo assim que o tempo que você definir no linux é compartilhado com o Windows corretamente. Alternativamente, isso pode ser feito, mas é mais difícil definir janelas para usar o UTC. Como isso é feito, as alterações com versões e janelas são conhecidas por reverter para o localtime após as atualizações.

Eu me lembro de um computador particularmente teimoso onde fazer todo o material hwclock estava sendo sobreposto, porque o computador estava buscando o tempo atual pela internet com o NTP. A configuração de 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 desses quase certamente funcionará. Eu tentaria o fuso horário primeiro, e depois tentei definitivamente o hwclock --systohc --localtime das coisas depois que você terminar, para ter certeza de que o relógio da BIOS está no horário local.

    
por 03.02.2016 / 00:23