Windows libvirt/QEMU来宾虚拟机在重新启动后将时区重置为主机时区



我已经使用libvirt/QEMU创建了一个Windows 2012虚拟机。虚拟机运行的虚拟机监控程序(裸机(基于UTC时区,但Windows虚拟机中的时区应为Arizona时区。我能够使用libvirt-xml中的以下计时器定义来修复时间上的漂移

<clock offset='localtime'>
<timer name='hypervclock' present='yes'/>
<timer name='rtc' tickpolicy='catchup' track='guest'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>

但一旦我重新启动VM,时间就会移回UTC,但时区仍然显示为亚利桑那时区,这是错误的。时间和时区都应该是亚利桑那州。我是否遗漏了任何libvirt指令来避免这种情况?其他人也面临同样的问题吗?

<clock offset='localtime'>指示QEMU将来宾时间设置为与主机的本地时间视图相匹配。由于您说主机本地时间设置为UTC,因此每次启动时来宾时间都将设置为UTC。您在来宾中所做的更改只会持续到下一次冷重启。

您希望来宾时区与主机时区不同,因此;本地时间";偏移,您需要";timzeone";抵消IIUC,Arizone在MST,所以像这样的东西应该做<clock offset='timezone' timezone='mst'>的工作。另请参阅https://libvirt.org/formatdomain.html#time-保留

最新更新