我有一个运行带有Guest Additions的Centos 6.5的VirtualBox VM,我需要能够随意禁用和启用来自guest虚拟机的时间同步。默认情况下,guest虚拟机每隔10秒与主机同步一次[1],这是Guest Additions内置的功能。
有一些方法可以禁用时间同步,但它们不足以满足我的需求:
在VM启动时禁用时间同步:
VBoxManage setextradata "VM name" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
在运行时禁用VM中的guest虚拟机添加:
sudo service vboxadd-service stop
他们不为我工作的原因是:
当我运行sudo VBoxControl guestproperty enumerate
时,我没有看到与时间同步有关的事情。
所以......一种在不禁用vboxadd-service
服务的情况下从VirtualBox VM中禁用和启用时间同步的方法请:)
[1] https://www.virtualbox.org/manual/ch09.html#idp59923008 - 第9.14.3节
答案 0 :(得分:4)
您应该能够在客户端上编辑vboxadd-service
脚本并添加--disable-timesync
选项。然后应禁用sudo service vboxadd-service restart
和时间同步。
答案 1 :(得分:0)
但我有windows guest,注册表的更改是必要的,以使其工作。我不知道您的来宾CentOS系统中的Windows注册表设置等同于什么。
答案 2 :(得分:0)
我有一个用流浪汉构建的ubuntu / trusty64虚拟机。我必须在虚拟机上的virtualbox guest虚拟机添加中关闭时间同步。为此,我将VBOX_OPTS添加到/etc/init.d/virtualbox-guest-utils中,如下所示:
编辑/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
答案 3 :(得分:0)
我尝试了 --disable-timesync
解决方案,但在我的 VM 上没有任何区别。
请注意,在 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 半虚拟化设置。默认情况下,它设置为 Default,我认为这意味着 KVM。相反,我现在使用最小。
使用最小设置后,我的 VM 现在可以通过 ntp
正确计时。抖动只有大约 4 或更少。偏移量也非常小。我保留了 --disable-timesync
,因为它应该没有必要。