我已经安装了Ubuntu Server 12.04作为KVM主机,并创build了一个Ubuntu客户机,它也运行Ubuntu服务器12.04。 服务器在AST时区,即UTC + 3小时。 使用date -s在客人中正确设置时间后,我可以按照自己的喜好重新启动客人,重新启动之间保留正确的时间。
但是,如果KVM主机重新启动(主机在重新启动之间没有时间问题),那么一旦启动我的KVM客人,所有这些主机都会在正确的时间后面3个小时。 下面的输出显示主机和来宾的系统时间和硬件时钟时间。
root@kvmhost1:~# date Wed Jan 16 14:10:38 AST 2013 root@kvmhost1:~# hwclock Wed 16 Jan 2013 02:10:40 PM AST -0.187899 seconds root@kvmguest1:~# date Wed Jan 16 11:10:45 AST 2013 root@kvmguest1:~# hwclock Wed 16 Jan 2013 02:10:47 PM AST -0.521226 seconds
一旦时间在客人更正,然后他们可以重新启动时间不正确的转移。
我试过/testing过的东西
dmesg | grep kvm-clock dmesg | grep kvm-clock在客人和它确认kvm时钟正在使用中。 更新
我使用hwclock命令中的--localtime选项将硬件时钟设置为使用本地时间。 同样的问题仍然存在。 尽pipe由于软件和硬件时钟设置在同一时间,所以输出更清晰一些。
root@kvmhost1:~# date Wed Jan 16 15:50:26 AST 2013 root@kvmhost1:~# hwclock Wed 16 Jan 2013 03:50:29 PM AST -0.750378 seconds root@kvmguest1:~# date Wed Jan 16 12:50:29 AST 2013 root@kvmguest1:~# hwclock Wed 16 Jan 2013 12:50:31 PM AST -0.849677 seconds
解决scheme
迈克尔汉普顿下面的答案解决了这个问题。 访客是使用kickstart文件创build的,默认情况下,该文件不会在UTC时间设置硬件时钟。 我添加了–utc选项到kickstart时区选项,它解决了这个问题。 kickstart选项现在如下所示:
timezone --utc Asia/Bahrain
看来你已经以某种方式安装你的客人,它认为硬件时钟在当地时间。 KVM客人应该始终以UTC时间考虑他们的硬件时钟,除非他们是Windows客人(但是即使那些可以被设置为UTC硬件时钟)…
编辑/etc/default/rcS文件,并将UTC=no更改为UTC=yes 。 然后重置您的客人时钟。