我安装了 Gentoo 作为客户操作系统。我的硬件时钟与主机系统同步,但操作系统的时钟在挂起后往往会出错。
我发现的唯一解决方案是hwclock -s
通过 cron 频繁运行。
还有更好的方法吗?
答案1
VMware 工具可能会帮你做到这一点,但 Gentoo 不支持宾客兼容性列表所以它可能不起作用,或者可能需要付出很多努力才能起作用。
您可以使用 ntp 来保持时钟最新,或者安排 ntpdate 运行。我不确定这些方法是否比 hwclock -s 更好。
您可能想要避免的一件事是简单地改变时钟时间的方法 - 这将导致跳过 cron 作业。ntp 加快时钟以获取正确的时间。ntpdate 更改时钟时间。
答案2
$ cat /sys/devices/system/clocksource/clocksource0/available_clocksource
kvm-clock tsc hpet acpi_pm
$ cat /sys/devices/system/clocksource/clocksource0/current_clocksource
tsc
不能依赖 TSChttp://en.wikipedia.org/wiki/Time_Stamp_Counter
尝试 hpet 或 acpi_pm
加上内核命令行选项clocksource=hpet(在引导加载程序配置中设置)。
请参阅 Linux 源代码中的 Documentation/kernel-parameters.txt。
答案3
我在另一台 Macbook 上的 VMware Fusion 3.1.3 上构建了一个新的 Gentoo VM 客户机,并安装了 portage 中的 open-vm-tools。我必须取消屏蔽两个包,但它们构建成功。
/usr/bin/vmtoolsd 进程使客户机时钟与主机时钟保持同步。它还执行其他一些日常工作。诚然,它可能需要一小段时间才能使时钟同步,但它为我做到了。
为了获得加速 I/O 等,您还需要激活这些内核选项:
- VMWARE_PVSCSI
- VMXNET3
- VMWARE_气球
它们不需要“工具”包,因为上游内核现在默认包含这些驱动程序。 open-vm-tools-kmod 包包含额外的驱动程序模块。我的配置文件可见于此要点:
https://gist.github.com/1209749
我实际上并没有阅读这个 wiki 条目,我只是自己安装了软件包并配置了启动脚本和内核选项,但它可能会有用:
http://www.gentoo-wiki.info/HOWTO_Install_VMware_Tools_in_Gentoo
答案4
尽管这个问题已经很老了,但这里还有另一个更好的解决方案:
- 出现 app-emulation/open-vm-tools
- 确保“/usr/bin/vmtoolsd”以 root 身份运行(目前没有提供初始化脚本)
- 通过“vmware-toolbox-cmd timesync enable”启用自动时间同步。可以通过“vmware-toolbox-cmd timesync status”检查状态
这样,即使虚拟机已暂停,客户机的时钟也将始终与主机的时钟匹配。其他方法(如运行 ntpd 或 ntpdate)对我来说都失败了。而且,是的,时钟会跳转,cron 作业可能会被跳过 ;)