it-swarm.com.de

VirtualBox: Wie synchronisiere ich die Zeit von Host und Gast?

Die Zeit in meinem Gast VM ist ca. 20-30 Minuten schneller als die Host-Zeit. Was kann ich tun, damit die Zeit im Gast mit der auf dem Host übereinstimmt?

37
kokloong

Installieren Sie für einen Linux-Host zuerst das DKMS-Paket (Dynamic Kernel Module Support) auf dem Gastcomputer ( source ):

$ Sudo apt-get install dkms

Dann installiere Guest Additions in das Gastsystem:

$ Sudo apt-get install virtualbox-guest-additions

Außerdem finden Sie hier Beschreibungen einiger Befehle zum Optimieren der VirtualBox-Zeitsynchronisation .

16
Nikita Krupenko

Das folgende Setup ermöglicht es meinem Gast, eine Zeit zu gewährleisten, die auf 1 Sekunde von meinem Host genau ist. Es wurde mit dem Host getestet, auf dem VirtualBox 4.3.26 ausgeführt wird, und dem Gast, auf dem dieselbe Version von VirtualBox Guest Additions ausgeführt wird. In Bezug auf VirtualBox 5.x war es bisher nicht erforderlich, diese Konfigurationsänderungen vorzunehmen. Die Zeit wurde automatisch synchronisiert.

Referenz: https://www.virtualbox.org/manual/ch09.html#changetimesync


Listen Sie auf dem Host die VMs auf, um den Namen der entsprechenden VM zu ermitteln.

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

Konfigurieren Sie auf dem Host die Zeitsynchronisationsparameter für den Gast, indem Sie die folgenden Befehle ausführen. Stellen Sie zuerst $VMNAME mit dem entsprechenden Wert ein. Wenn der Wert von $VMNAME ein Leerzeichen enthält, sollte es natürlich in Anführungszeichen gesetzt werden.

$ 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

Die Werte der obigen Zeitparameter wurden auf ein Vielfaches von 10 beschränkt. Es ist möglicherweise verlockend, timesync-set-threshold stattdessen auf 10000 zu setzen. Dies kann jedoch zu einer drastischen Zeitänderung führen, wenn sie ausgelöst wird, und daher möglicherweise zu einem Absturz von Anwendungen führen.


Zeigen Sie auf dem Host die aktualisierten relevanten Werte für den Gast an. Diese können jederzeit erneut bestätigt werden.

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

Beenden und deaktivieren Sie auf dem Gast alle internen NTP und zugehörigen Zeitnehmungsdienste. Sie sollten nicht verwendet werden, da sie wahrscheinlich VirtualBox stören. Auf einem CentOS 6-Gast:

$ 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

Starten Sie auf dem Gast den Dienst vboxadd-service neu. Vorausgesetzt, Guest Additions wurde bereits installiert, wäre dieser Dienst installiert und aktiviert worden. Auf einem CentOS 6-Gast:

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

Wenn die Uhrzeit auf dem Gast noch nicht synchronisiert ist, starten Sie den Gast neu.

30
A-B-B

Ich gebe eine andere Lösung, um die Zeit zwischen Gast und Host zu synchronisieren, ohne Virtualbox-Gast zu installieren:

  1. Installieren Sie NTP auf Ihrem Gast und dekommentieren Sie diese Zeilen in /etc/ntp.conf.
disable auth
broadcastclient
  1. Aktivieren Sie die Übertragung auf Ihrem Host. Bearbeiten Sie für Linux-Benutzer Ihre /etc/ntp.conf -Datei und konfigurieren Sie die Leitung
broadcast 192.168.123.255 

Aktivieren Sie für Windows-Benutzer den Dienst „Windows-Zeit“. Sie können diese Seite dann lesen , um sie für die Sendezeit zu konfigurieren

1
fred727