VirtualBox: как синхронизировать время хоста и гостя?

VirtualBox: как синхронизировать время хоста и гостя?

Время в моей гостевой виртуальной машине быстрее времени хоста примерно на 20-30 минут. Что я могу сделать, чтобы время в гостевой машине было таким же, как на хосте?

решение1

Для хоста Linux сначала установите пакет DKMS (Dynamic Kernel Module Support) на гостевой машине (источник):

$ sudo apt-get install dkms

Затем установите гостевые дополнения в гостевую систему:

Убунту 20.04+

$ sudo apt-get install virtualbox-guest-utils

Ubuntu 18.04 или более ранняя версия

$ sudo apt-get install virtualbox-guest-additions

Также, вот описаниянекоторые команды для настройки синхронизации времени VirtualBox.

решение2

Следующая настройка позволяет моему гостю надежно поддерживать время с точностью до 1 секунды относительно моего хоста. Она протестирована с хостом, работающим под управлением VirtualBox 4.3.26, и гостем, работающим под управлением той же версии VirtualBox Guest Additions. Что касается VirtualBox 5.x, у меня пока не было необходимости вносить эти изменения в конфигурацию; время автоматически синхронизировалось.

Ссылка:https://www.virtualbox.org/manual/ch09.html#changetimesync


На хосте выведите список виртуальных машин, чтобы определить имя соответствующей виртуальной машины.

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

На хосте настройте параметры синхронизации времени для гостя, выполнив команды ниже. Сначала установите $VMNAMEсоответствующее значение. Если значение $VMNAMEсодержит пробел, его, конечно, следует заключить в кавычки.

$ 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

Значения параметров времени, указанные выше, ограничены числами, кратными 10. Может возникнуть соблазн установить timesync-set-thresholdзначение 10000, но это может привести к довольно резкому изменению времени при срабатывании и, следовательно, к сбою приложений.


На хосте просмотрите обновленные соответствующие значения для гостя. Их можно подтвердить в любое время.

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

На гостевой машине остановите и отключите все внутренние NTP и связанные с ними службы хронометража. Их не следует использовать, так как они могут помешать работе VirtualBox. На гостевой машине 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

На гостевой системе перезапустите службу с именем vboxadd-service. Если Guest Additions был установлен ранее, эта служба будет установлена ​​и включена. На гостевой системе 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

Если время на гостевой системе еще не синхронизировано, перезагрузите гостевую систему.

решение3

Я предлагаю другое решение для синхронизации времени между гостем и хостом без установки гостевого дополнения Virtualbox:

  1. Установите NTP на гостевой машине и раскомментируйте эти строки в /etc/ntp.conf.
disable auth
broadcastclient
  1. Активируйте трансляцию на вашем хосте. Для пользователей Linux отредактируйте /etc/ntp.confфайл и настройте строку
broadcast 192.168.123.255 

Для пользователей Windows активируйте службу «Windows Time». Затем вы сможетепрочитайте эту страницунастроить его на трансляцию времени

Связанный контент