Como sincronizar corretamente o tempo no linux em execução como convidado virtual após o retorno do host da hibernação?

19

Eu uso várias caixas virtuais para desenvolvimento e a hora e a data corretas são importantes para mim quando pressiono as confirmações do git. Eu não desligo meu host - ele dura meses sem reiniciar. Eu apenas o hiberno por noites e fins de semana. Isso apresenta um problema estranho aos meus sistemas operacionais convidados (todos os debians do turnkeylinux.org) - após algum tempo, a data dos sistemas operacionais convidados estará desativada por alguns dias.

Embora todos os convidados usem o NTP, ele não funcionará se detectar que a data está desativada por alguns valores grandes (poucas horas parecem ser suficientes). Existe alguma maneira de forçar a sincronização NTP mesmo com grandes diferenças de horário? Ou qualquer outra solução que restaure a data e a hora corretas nas caixas de convidados após o retorno do host da hibernação?

SiliconMind
fonte
1
Veja esta resposta para mais detalhes - basicamente as adições convidado prever sincronização do relógio direta sem a necessidade de NTP: superuser.com/questions/463106/...
Pierz

Respostas:

17

Em resumo: Instale (o pacote ntp e) as adições de convidados do VirtualBox :)

  • Anfitrião: Windows 6.1 SP1, x64, 3 GB
  • VirtualBox: v4.3.6
  • Convidado: Debian 7.3, 32 bits, 768 KB

No VirtualBox, anexe o arquivo Oracle\VirtualBox\VBoxGuestAdditions.isoao sistema convidado (Configurações / Armazenamento) e como root

cd /media/cdrom0
sh ./VBoxLinuxAdditions.run

A Ajuda do VirtualBox em "9.4. Configuração avançada para convidados Linux e Solaris" descreve as etapas, mas eu tive que instalar o pacote linux-headers-3.2.0-4-486primeiro.
Então, como raiz,

/usr/lib/VBoxGuestAdditions/vboxadd setup
/usr/lib/VBoxGuestAdditions/vboxadd-service setup
/usr/lib/VBoxGuestAdditions/vboxadd setup

Depois, reinicie o convidado.

Verifiquei saindo do sistema guest ( Alt+ F4, depois solicite o VirtualBox para salvar o estado do guest), aguarde 5 minutos e reinicie o sistema guest.
Inicialmente, o relógio foi restaurado a partir do valor anterior, mas após alguns segundos tudo correu bem (relógio sincronizado)

Pierre
fonte
De fato, foi isso que acabei fazendo :) Não tive tempo de postar a resposta, então o crédito é para você.
SiliconMind
O NTP não é necessário para a sincronização do relógio de adições de convidados - ele é executado pelo daemon de adições de convidados (VBoxService).
Pierz
2
Por que você sugere repetir o primeiro comando duas vezes? Isso é mesmo necessário?
RDP
@RDP <quote> É realmente necessário repetir o primeiro comando duas vezes? </quote> Não me lembro, e a documentação mudou, consulte [ virtualbox.org/manual/ch09.html#idm7495]
Pierre,
Você precisa instalar o gcc e make também. Não os manifestar como um erro ao iniciar o serviço vboxadd. Mas você não recebe a sugestão útil de instalar esses pacotes, a menos que execute o vboxadd explicitamente - o VBoxLinuxAdditions.run não o expõe.
Harry Tsai
1

O servidor NTP não foi projetado para ser executado dentro de uma máquina virtual. Requer um relógio do sistema de alta resolução, com tempos de resposta para interrupções do relógio que são atendidas com alto nível de precisão. O cliente NTP pode executar em algumas soluções de virtualização. Execute o NTP no sistema operacional base da máquina e faça com que os vários sistemas operacionais convidados aproveitem o bom relógio criado no sistema. Mesmo isso pode não ser suficiente, pois pode haver ferramentas adicionais ou opções do kernel que você precisa ativar para que os clientes da máquina virtual possam sincronizar adequadamente seus relógios virtuais com o relógio do sistema físico.

Fonte: Suporte a problemas conhecidos do NTP

A partir dessa declaração, e lendo que sua parte importante são os tempos de confirmação do git, seria trivial escrever um gancho de pré-confirmação para reunir o tempo da sua máquina host, e você pode obtê-lo simplesmente perguntando à sua máquina host:

ssh hostmachine "date +%Y%m%d%H%M%s"

vgoff
fonte
Obrigado, mas isso não é uma resposta :) Estou usando o VirtualBox e não há opções para sincronização de horário. Então, se não NTP, então o que?
SiliconMind
Desculpe, dei o salto ... mas agora com uma edição esclareceu meu pensamento.
precisa