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

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

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

Antwort1

Bei einem Linux-Host installieren Sie zunächst das DKMS-Paket (Dynamic Kernel Module Support) auf dem Gastcomputer (Quelle):

$ sudo apt-get install dkms

Installieren Sie dann Guest Additions im Gastsystem:

Ubuntu 20.04+

$ sudo apt-get install virtualbox-guest-utils

Ubuntu 18.04 oder älter

$ sudo apt-get install virtualbox-guest-additions

Außerdem finden Sie hier Beschreibungen voneinige Befehle zum Optimieren der VirtualBox-Zeitsynchronisierung.

Antwort2

Das folgende Setup ermöglicht meinem Gast, zuverlässig eine Zeit beizubehalten, die auf eine Sekunde genau mit der meines Hosts übereinstimmt. Es wurde getestet, wobei der Host VirtualBox 4.3.26 ausführt und der Gast dieselbe Version von VirtualBox Guest Additions ausführt. Was VirtualBox 5.x betrifft, musste ich diese Konfigurationsänderungen bisher nicht vornehmen; die Zeit wurde automatisch synchronisiert.

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


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

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

Konfigurieren Sie auf dem Host die Zeitsynchronisierungsparameter für den Gast, indem Sie die folgenden Befehle ausführen. Stellen Sie zuerst $VMNAMEden entsprechenden Wert ein. Wenn der Wert $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 oben genannten Zeitparameter wurden auf Vielfache von 10 beschränkt. Es mag verlockend sein, timesync-set-thresholdstattdessen 10.000 festzulegen, aber dadurch besteht das Risiko einer ziemlich drastischen Zeitänderung beim Auslösen und kann daher Anwendungen beschädigen.


Auf dem Host werden die aktualisierten, relevanten Werte für den Gast angezeigt. 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:

Stoppen und deaktivieren Sie auf dem Gast alle internen NTP- und zugehörigen Zeiterfassungsdienste. Sie sollten nicht verwendet werden, da sie wahrscheinlich mit VirtualBox in Konflikt geraten. 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 mit dem Namen 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 Zeit auf dem Gast noch nicht synchronisiert ist, starten Sie den Gast neu.

Antwort3

Ich biete eine andere Lösung zum Synchronisieren der Zeit zwischen Gast und Host, ohne die Virtualbox-Gasterweiterung zu installieren:

  1. Installieren Sie NTP auf Ihrem Gast und entfernen Sie die Kommentarzeichen aus diesen Zeilen /etc/ntp.conf.
disable auth
broadcastclient
  1. Aktivieren Sie Broadcast auf Ihrem Host. Für Linux-Benutzer bearbeiten Sie Ihre /etc/ntp.confDatei und konfigurieren Sie die Zeile
broadcast 192.168.123.255 

Für Windows-Benutzer aktivieren Sie den Dienst „Windows Time“. Sie können dannLesen Sie diese Seiteum es für die Sendezeit zu konfigurieren

verwandte Informationen