如何在客户机中运行时禁用VirtualBox的时间同步

21

我有一个安装了Guest Additions的Centos 6.5的VirtualBox虚拟机,我需要能够在客户机内随时禁用和启用时间同步。默认情况下,客户机每10秒钟与宿主机同步其时间[1],这是内置于Guest Additions的功能。

有一些方法可以禁用时间同步,但对我的需求不足:

  1. 在VM启动时禁用时间同步:

    VBoxManage setextradata "VM name" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1

  2. 在VM运行时从VM中禁用Guest Additions:

    sudo service vboxadd-service stop

它们对我不起作用的原因是:

  1. 第一种选项只在启动时起作用-我需要能够在运行时执行此操作
  2. 第二个选项会停止我需要的来自Guest Additions的其他功能

当我运行sudo VBoxControl guestproperty enumerate时,我看不到任何与时间同步有关的内容。

所以……请提供一种方法,在不禁用vboxadd-service服务的情况下,在VirtualBox VM内禁用和启用时间同步:)

[1]https://www.virtualbox.org/manual/ch09.html#disabletimesync第9.13.4节


VirtualBox目前没有这个功能,但是你可以建议它。 - Holistic Developer
4个回答

8

1

0

我有一个使用vagrant构建的ubuntu/trusty64虚拟机。我不得不在虚拟机上关闭virtualbox guest addition中的时间同步。为了做到这一点,我在/etc/init.d/virtualbox-guest-utils中添加了VBOX_OPTS,如下所示:

编辑/etc/init.d/virtualbox-guest-utils并插入以下行:

if [ -n "$2" ]; then

 VBOX_OPTS="$VBOX_OPTS $2"

fi

修改这一行:

start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/VBoxService -- $VBOX_OPTS

现在停止和启动服务的方法如下

sudo service virtualbox-guest-utils stop
sudo service virtualbox-guest-utils start --disable-timesync

现在我可以将日期设置为所需的日期,并且它会一直保持到我重新启动机器。
date -s "2024-02-22 22:41:49,332" && date --rfc-3339=ns
date
Sat Feb 22 23:27:31 EST 2024

0

我尝试了--disable-timesync的解决方案,但在我的虚拟机上没有任何改变。

请注意,在Ubuntu 18.04中,设置部分使用systemd环境进行更改。该服务可以在此文件中找到:

/lib/systemd/system/vboxadd-service.service

ExecStart=这一行给出了脚本的名称,在其中可以找到该文件:

/opt/VBoxGuestAdditions-6.1.20/init/vboxadd-service

在编程中,你必须小心,因为他们重新实现了daemon(),你不能只是添加一个新选项。你必须确保所有条目都知道该附加选项。

第一个在这里,你必须添加$4

daemon() {
    $1 $2 $3 $4
}

还有另一种定义,你还需要添加$4,它看起来像这样:

daemon() {
    start-stop-daemon --start --exec $1 -- $2 $3 $4
}

然后你可以在这一行上添加一个选项,就像这样:

    daemon $binary --disable-timesync --pidfile $PIDFILE > /dev/null

没有前两次编辑,它将失败。

现在,正如我上面提到的那样,那对我不起作用。相反,我必须更改VM的para虚拟化设置。默认情况下,它设置为Default,我认为这意味着KVM。 相反,我现在使用Minimal

使用Minimal设置,现在我的VM可以正确保持时间与ntp同步。 抖动只有4或更少。 偏移量也非常小。 我保留了--disable-timesync,因为它不应该是必需的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接