VirtualBox: Como sincronizar o horário do host e do convidado?

39

O tempo na minha VM convidada é mais rápido que o tempo do host em cerca de 20 a 30 minutos. O que posso fazer para que o tempo no convidado seja o mesmo que no host?

Acumenus
fonte

Respostas:

16

Para um host Linux, instale primeiro o pacote DKMS (Dynamic Kernel Module Support) na máquina convidada ( origem ):

$ sudo apt-get install dkms

Em seguida, instale as adições de convidados no sistema de convidados:

$ sudo apt-get install virtualbox-guest-additions

Além disso, aqui estão as descrições de alguns comandos para ajustar a sincronização de horário do VirtualBox .

Nikita Krupenko
fonte
3
Em distribuições recentes, você alterará esses pacotes para virtualbox-guest-dkmse virtualbox-guest-utils.
Yvan
apté um gerenciador de pacotes especificamente para distribuições baseadas no Debian. Isso não funcionará em outros convidados do Linux.
Kyle Strand
33

A configuração a seguir permite que meu convidado mantenha com confiabilidade um tempo exato dentro de 1 segundo do meu host. Ele é testado com o host executando o VirtualBox 4.3.26 e o ​​convidado executando a mesma versão do VirtualBox Guest Additions. Quanto ao VirtualBox 5.x, até agora não tive nenhuma necessidade de fazer essas alterações na configuração; a hora foi automaticamente sincronizada.

Referência: https://www.virtualbox.org/manual/ch09.html#changetimesync


No host, liste as VMs para verificar o nome da VM relevante.

$ VBoxManage list vms | awk '{print $1}'
"CentOS6"

No host, configure os parâmetros de sincronização de horário para o convidado executando os comandos abaixo. Primeiro defina $VMNAMEcom seu valor apropriado. Se o valor de $VMNAMEcontiver um espaço, é claro que deve ser citado.

$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-interval" 10000
$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-min-adjust" 100
$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-set-on-restore" 1
$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold" 1000

Os valores dos parâmetros de tempo acima foram restritos a múltiplos de 10. Em timesync-set-thresholdvez disso, pode ser tentador definir para 10000, mas isso pode arriscar uma mudança de tempo bastante drástica quando é acionado e, portanto, pode interromper os aplicativos.


No host, visualize os valores relevantes atualizados para o convidado. Estes podem ser reconfirmados a qualquer momento.

$ VBoxManage guestproperty enumerate ${VMNAME} | grep timesync | sort
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-interval, value: 10000, timestamp: 1402110397618554000, flags:
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-min-adjust, value: 100, timestamp: 1402110777505446000, flags:
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-set-on-restore, value: 1, timestamp: 1402110904964050000, flags:
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold, value: 1000, timestamp: 1402110660162295000, flags:

No convidado, pare e desabilite todos os NTP internos e serviços de cronometragem relacionados. Eles não devem ser usados, pois podem interferir no VirtualBox. Em um convidado do CentOS 6:

$ sudo /sbin/chkconfig ntpd off
$ /sbin/chkconfig --list | grep ntp
ntpd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
ntpdate         0:off   1:off   2:off   3:off   4:off   5:off   6:off

No convidado, reinicie o serviço nomeado vboxadd-service. Supondo que as adições de convidados foram instaladas anteriormente, esse serviço teria sido instalado e ativado. Em um convidado do CentOS 6:

$ /sbin/service vboxadd-service status
Checking for VBoxService ...running
$ sudo /sbin/service vboxadd-service restart
Stopping VirtualBox Guest Addition service                 [  OK  ]
Starting VirtualBox Guest Addition service                 [  OK  ]
$ /sbin/service vboxadd-service status
Checking for VBoxService ...running

Se a hora no convidado ainda não estiver sincronizada, reinicie o convidado.

Acumenus
fonte
Obrigado! A etapa final de reiniciar o vboxadd-serviceserviço é o que fez as coisas funcionarem para mim e não parece estar documentada (pelo menos no link que você forneceu).
Jrandom_hacker
Quando tento isso em um convidado do CentOS 7, o vboxadd-service não é encontrado? Esta é uma instalação mínima, sem GUI.
Br.Bill
1

Dou uma outra solução para sincronizar o tempo entre convidado e host sem instalar a adição de convidado do Virtualbox:

  1. Instale o NTP no seu convidado e descomente essas linhas em /etc/ntp.conf.
disable auth
broadcastclient
  1. Ative a transmissão no seu host. Para usuários linux, edite seu /etc/ntp.confarquivo e configure a linha
broadcast 192.168.123.255 

Para usuários do Windows, ative o serviço “Windows Time”. Você pode então ler esta página para configurá-la para transmitir o tempo

fred727
fonte
11
O que é significativo no endereço IP 192.168.123.255?
Br.Bill