virtual machine virtualbox虚拟机无法上网 如何在VirtualBox中同步主机唤醒时间?




virtualbox虚拟机无法上网 (5)

我提供了另一种解决方案来同步客户端和主机之间的时间,而无需安装Virtualbox guest虚拟机:

  1. 在您的guest虚拟机上安装ntp,并在/etc/ntp.conf取消注释这些行:

    disable auth
    broadcastclient
    

然后,使用service ntp restart启动ntp

  1. 主持人的主动广播:

    • 对于Linux用户,编辑/etc/ntp.conf文件并配置广播(必须调整IP):

      广播192.168.123.255

    • 对于Windows用户,请激活“ Windows时间 ”服务。 然后,您可以阅读此页面以将其配置为广播时间

    然后,重新启动主机上的时间服务。

我正在使用VirtualBox在Vagrant内部运行基于Ubuntu 12.04的盒子。 到目前为止,一切都很好 - 除了一件事:

我们假设VM正在运行。 然后,主机进入待机模式。 在再次唤醒之后,VM仍在运行,但其内部时钟继续在主机发生故障时停止的位置。 所以这基本上意味着:让主机进入睡眠状态15分钟,再次唤醒,然后VM的内部时钟延迟15分钟。

我该如何解决这个问题(由于明显的原因,手动设置时间不是一个选项;-))? 有没有办法在主机系统更改其状态时在Vagrant VM内运行脚本?

我在documentation中读到,默认情况下,VirtualBox Guest Additions每隔10秒与主机同步一次。 显然这没有发生,但我找不到它被禁用的任何地方。 那么任何想法?

PS:安装Guest Additions并匹配正在使用的VirtualBox版本。


我找到了解决方案:

  1. 安装ntpdate
  2. 为ntpdate添加“s”权限,这允许非root用户以root身份运行ntpdate: sudo chmod u+s /usr/sbin/ntpdate
  3. ~/.bashrc添加一行: ntpdate -u ntp.ubuntu.com

之后,每次登录linux系统时,时间都会同步一次。


您可以在VM中安装VirtualBox Guest Additions以通过VB自动同步时间。


总结@zilupe和@Slobodan Kovacevic的答案,解决方案是在Vagrantfile添加以下Vagrantfile

config.vm.provider 'virtualbox' do |vb|
   vb.customize [ "guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 1000 ]
end

每当desync变为> 1s(1000ms)时,这将同步时钟


为了让我获得时间同步工作,我必须这样做:

vboxmanage setextradata «machine-name» "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 0

它打开了时间同步。 出于某种原因,这是关闭的。