我在 VirtualBox 3.04 中运行的 Ubuntu 8.04 服务器(2.6.24-24-通用内核)中遇到了时钟运行过快的问题。
它漂移得很快,大约每小时 5 分钟。
我认为它工作正常,直到我升级到 VirtualBox 3.04(从 2.something 开始)。我一直在ntpd
运行,我唯一需要做的就是/etc/init.d/ntp stop
,当虚拟机暂停/恢复时ntpdate ...
。/etc/init.d/ntp start
今天,我尝试安装 VirtualBox Guest Additions,并且它们正在运行(根据/etc/init.d/vboxadd status
。)
运行vboxadd-service --foreground --verbose
结果为:
vboxadd-service: Starting 'timesync' in the main thread
vboxadd-service: adjtime by -380331911000 ns
vboxadd-service: adjtime by -381107064000 ns
vboxadd-service: adjtime by -381883899000 ns
看起来它正在尝试更新时间,但是失败了。
所以,我不确定该怎么做,我无法找到关于是否ntpd
应该运行的共识?如果不运行,我该如何阻止它在重启时再次启动?
答案1
这是 VirtualBox 中的一个已知问题,通过在虚拟机上安装 Guest Additions 来管理 TimeSync 即可解决。不久前 VMWare 也出现过类似的问题。这这只是 VirtualBox 中被报告的其中一次。
确保您正在运行最新的客户添加程序,并且它是随您的 VirtualBox 版本提供的最新版本。
答案2
我不明白为什么不能在系统上运行 ntpd,或者每两三分钟运行一次 cronjob 和 ntpdate。我记得时钟漂移曾经是许多 VM 产品中的一个问题,解决方案始终是确保附加功能/实用程序和 VM 产品处于同一级别。
您还可以查看安装带有更新版本 Ubuntu 的新 VM 是否会影响时钟漂移,或者系统上的超线程或 BIOS 中启用的其他处理器扩展是否存在异常。
我个人的方法是定期从 cron 运行时间同步,因为 NTP 有时会在不通知我的情况下失败或在随机时间运行,当时钟没有疯狂偏差时,这将会很棒,但在这种情况下...强制它持续运行可能会更方便。除了消耗一些额外的处理器周期外,不会造成任何损害。
答案3
我不了解 Ubuntu 和 Virtualbox,但根据我对 RedHat 和 VMware 的了解,您可以尝试将“clock=pit”附加到内核启动选项中。