VirtualBox: Comment synchroniser l'heure de l'hôte et celle de l'invité?

39

L'heure de ma machine virtuelle invitée est plus rapide que l'heure de l'hôte d'environ 20 à 30 minutes. Que puis-je faire pour que l'heure de l'invité soit la même que celle de l'hôte?

Acumenus
la source

Réponses:

16

Pour un hôte Linux, installez d’abord le package DKMS (Dynamic Kernel Module Support) sur la machine invitée ( source ):

$ sudo apt-get install dkms

Ensuite, installez Guest Additions dans le système invité:

$ sudo apt-get install virtualbox-guest-additions

En outre, voici des descriptions de certaines commandes permettant d’optimiser la synchronisation de l’heure VirtualBox .

Nikita Krupenko
la source
3
Sur les distributions récentes, vous allez modifier ces paquets pour virtualbox-guest-dkmset virtualbox-guest-utils.
Yvan
aptest un gestionnaire de paquets spécifiquement pour les distributions basées sur Debian. Cela ne fonctionnera pas sur d'autres invités Linux.
Kyle Strand
33

La configuration suivante permet à mon invité de conserver de manière fiable une heure précise à 1 seconde près de mon hôte. Il est testé avec l'hôte exécutant VirtualBox 4.3.26 et l'invité exécutant la même version de VirtualBox Guest Additions. Pour ce qui est de VirtualBox 5.x, je n’ai pas eu besoin de faire ces changements de configuration; l'heure a été automatiquement synchronisée.

Référence: https://www.virtualbox.org/manual/ch09.html#changetimesync


Sur l'hôte, répertoriez les ordinateurs virtuels pour connaître le nom de l'ordinateur virtuel approprié.

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

Sur l'hôte, configurez les paramètres de synchronisation de l'heure pour l'invité en exécutant les commandes ci-dessous. Premier ensemble $VMNAMEavec sa valeur appropriée. Si la valeur de $VMNAMEcontient un espace, il convient bien sûr de le citer.

$ 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

Les valeurs des paramètres de temps ci-dessus ont été limitées à des multiples de 10. Il peut être tentant de définir la valeur timesync-set-thresholdsur 10000, mais cela peut entraîner un changement de temps plutôt brutal au déclenchement, et donc interrompre les applications.


Sur l'hôte, affichez les valeurs pertinentes mises à jour pour l'invité. Ceux-ci peuvent être reconfirmés à tout moment.

$ 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:

Sur l'invité, arrêtez et désactivez tous les services de chronométrage NTP internes et connexes. Ils ne doivent pas être utilisés car ils risquent d'interférer avec VirtualBox. Sur un invité 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

Sur l'invité, redémarrez le service nommé vboxadd-service. En supposant que Guest Additions ait déjà été installé, ce service aurait été installé et activé. Sur un invité 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

Si l'heure sur l'invité n'est pas encore synchronisée, redémarrez l'invité.

Acumenus
la source
Merci! La dernière étape du redémarrage du vboxadd-serviceservice est ce qui a fonctionné pour moi, et ne semble pas être documentée (du moins sur le lien que vous avez indiqué).
j_random_hacker
Lorsque j'essaie ceci sur un invité CentOS 7, le service vboxadd n'est pas trouvé? Ceci est une installation minimale, pas d'interface graphique.
Br.Bill
1

Je donne une autre solution pour synchroniser le temps entre invité et hôte sans installer l’ajout d’invité Virtualbox:

  1. Installez NTP sur votre invité et décommentez ces lignes /etc/ntp.conf.
disable auth
broadcastclient
  1. Activer la diffusion sur votre hôte. Pour les utilisateurs linux, éditez votre /etc/ntp.conffichier et configurez la ligne
broadcast 192.168.123.255 

Pour les utilisateurs Windows, activez le service «Windows Time». Vous pouvez ensuite lire cette page pour la configurer pour diffuser du temps

Fred727
la source
1
Quelle est l'importance de l'adresse IP 192.168.123.255?
Br.Bill