Le temps dans ma VM invitée est plus rapide que le temps de l'hôte d'environ 20 à 30 minutes. Que puis-je faire pour que le temps dans l'invité soit le même que sur l'hôte ?
Réponses
Trop de publicités?La configuration suivante permet à mon invité de maintenir de manière fiable un temps précis à une seconde près de celui de mon hôte. Elle est testée avec l'hôte utilisant VirtualBox 4.3.26 et l'invité utilisant la même version de VirtualBox Guest Additions. En ce qui concerne VirtualBox 5.x, je n'ai jusqu'à présent pas eu besoin d'effectuer 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, dressez la liste des VM pour connaître le nom de la VM concernée.
$ VBoxManage list vms | awk '{print $1}'
"CentOS6"
Sur l'hôte, configurez les paramètres de synchronisation temporelle pour l'invité en exécutant les commandes ci-dessous. Premièrement, définissez $VMNAME
avec sa valeur appropriée. Si la valeur de $VMNAME
contient un espace, il doit bien entendu être cité.
$ 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 temporels ci-dessus ont été limitées à des multiples de 10. Il peut être tentant de fixer timesync-set-threshold
à 10000, mais cela risque d'entraîner un changement de temps assez radical au moment du déclenchement, et donc d'interrompre les applications.
Sur l'hôte, affichez les valeurs pertinentes mises à jour pour l'invité. Celles-ci peuvent être reconfirmées à 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'ordinateur invité, arrêtez et désactivez tous les services NTP internes et les services de chronométrage associés. Ils ne doivent pas être utilisés car ils sont susceptibles 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 été précédemment 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é.
Pour un hôte Linux, installez d'abord le paquet DKMS (Dynamic Kernel Module Support) sur la machine invitée ( source ):
$ sudo apt-get install dkms
Installez ensuite Guest Additions dans le système invité :
$ sudo apt-get install virtualbox-guest-additions
Voici également les descriptions de quelques commandes pour régler la synchronisation du temps de VirtualBox .
Je donne une autre solution pour synchroniser l'heure entre l'invité et l'hôte sans installer l'ajout d'invité Virtualbox :
-
Installez NTP sur votre invité, et dé-commentez ces lignes dans
/etc/ntp.conf
.disable auth broadcastclient
-
Activez la diffusion sur votre hôte. Pour les utilisateurs de linux, éditez votre
/etc/ntp.conf
et configurer la lignebroadcast 192.168.123.255
Pour les utilisateurs de Windows, activer le service "Windows Time". Vous pourrez alors lire cette page pour le configurer afin qu'il diffuse l'heure