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

39

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

Акаменус
источник

Ответы:

16

Для хоста Linux сначала установите пакет DKMS (поддержка динамического модуля ядра) на гостевой машине ( источник ):

$ sudo apt-get install dkms

Затем установите Guest Additions в гостевую систему:

$ sudo apt-get install virtualbox-guest-additions

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

Никита Крупенко
источник
3
В последних выпусках вы измените эти пакеты для virtualbox-guest-dkmsи virtualbox-guest-utils.
Иван
aptэто менеджер пакетов специально для дистрибутивов на основе Debian. Это не будет работать на других гостях Linux.
Кайл Стрэнд
33

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

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

Акаменус
источник
Благодарность! Последний шаг перезапуска vboxadd-serviceслужбы - это то, что заставило меня работать, и, кажется, не документировано (по крайней мере, по ссылке, которую вы дали)
j_random_hacker
Когда я пытаюсь сделать это на гостевой системе CentOS 7, vboxadd-сервис не найден? Это минимальная установка, без графического интерфейса.
Br.Bill
1

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

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

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

fred727
источник
1
Что важного в IP-адресе 192.168.123.255?
Br.Bill