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


39

Die Zeit in meiner Gast-VM ist ca. 20-30 Minuten schneller als die Host-Zeit. Was kann ich tun, damit die Zeit im Gast dieselbe ist wie auf dem Host?

Antworten:


16

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

$ 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-Zeitsynchronisierung .


3
Bei neueren Distributionen werden Sie diese Pakete für virtualbox-guest-dkmsund ändern virtualbox-guest-utils.
Yvan

aptist ein Paketmanager speziell für Debian-basierte Distributionen. Dies funktioniert bei anderen Linux-Gästen nicht.
Kyle Strand

33

Das folgende Setup ermöglicht es meinem Gast, eine Zeit zu gewährleisten, die auf 1 Sekunde genau von meinem Host abweicht. Es wurde mit dem Host, auf dem VirtualBox 4.3.26 ausgeführt wird, und dem Gast, auf dem dieselbe Version von VirtualBox Guest Additions ausgeführt wird, getestet. 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 $VMNAMEden entsprechenden Wert ein. Wenn der Wert von $VMNAMEein Leerzeichen enthält, sollte er 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-thresholdstattdessen auf 10000 zu setzen. Dies kann jedoch zu einer drastischen Zeitänderung führen, wenn sie ausgelöst wird, und kann daher 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 rückbestä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 namens neu vboxadd-service. Vorausgesetzt, Guest Additions wurde zuvor 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.


Vielen Dank! Der letzte Schritt des Neustarts des vboxadd-serviceDienstes hat die Dinge für mich zum Laufen gebracht und scheint nicht dokumentiert zu sein (zumindest nicht unter dem von Ihnen angegebenen Link).
j_random_hacker

Wenn ich dies auf einem CentOS 7-Gast versuche, wird der vboxadd-Dienst nicht gefunden? Dies ist eine minimale Installation, keine GUI.
Br.Bill

1

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.confDatei und konfigurieren Sie die Zeile
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
Was ist wichtig an der IP-Adresse 192.168.123.255?
Br.Bill
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.