多重引导系统时间冲突
操作系统将时间存储和检索到位于主板上的硬件时钟中,以便即使在系统没有电源时也能跟踪时间。大多数操作系统(Linux/Unix/Mac)默认将时间存储在硬件时钟上作为UTC,而一些系统(尤其是Microsoft Windows)将时间存储在硬件时钟上作为“本地时间”。这在双启动系统中会导致问题,如果两个系统对硬件时钟的视图不同。
将硬件时钟设置为UTC的优点是,在时区之间移动或夏令时(DST)开始或结束时,您无需更改硬件时钟,因为UTC没有夏令时或时区偏移。
将Linux更改为使用本地时间比将Windows更改为使用UTC更容易和可靠,因此双启动Linux/Windows系统倾向于使用本地时间。
自Intrepid(8.10)以来,默认值为UTC=yes。
解决方案1:使Windows使用UTC
注意:最初Windows Vista和Server 2008不支持此方法,但随后在Vista SP2、Windows 7、Server 2008 R2和Windows 8/8.1中重新支持。
要使MS Windows从硬件时钟计算时间为UTC,请创建一个名为
WindowsTimeFixUTC.reg的文件,其中包含以下内容,然后双击该文件以将内容与注册表合并:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001
注意:无论上述注册表设置如何,在关闭时Windows Time服务仍会将本地时间写入RTC,因此如果在Windows中仍需要时间同步,请使用以下命令禁用Windows Time服务(如果需要在Windows中使用任何第三方时间同步解决方案):
sc config w32time start= disabled
如果在Powershell中运行上述命令,则必须指定sc.exe:
sc.exe config w32time start= disabled
撤销更改
您可以创建一个包含以下内容的文件,然后双击它以合并原始更改,如上所述:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=-
如果Windows Time服务已被禁用,请使用以下命令重新启用它:
sc config w32time start= demand
解决方案2:使Linux使用“本地”时间
告诉您的Ubuntu系统硬件时钟设置为“本地”时间:
Ubuntu 15.04之前的系统(例如Ubuntu 14.04 LTS):
编辑/etc/default/rcS
添加或更改以下部分:
# Set UTC=yes if your hardware clock is set to UTC (GMT)
UTC=no
Ubuntu 15.04及以上的系统(例如Ubuntu 16.04 LTS):
打开终端并执行以下命令:
timedatectl set-local-rtc 1
来源:Ubuntu 帮助