从Ubuntu切换到Windows 10后,时钟显示错误的时间
我在UEFI模式下启动了双启动Windows 10和Ubuntu 16.04(安全启动关闭)。 我在BIOS中的时间是正确的。
当我启动到Ubuntu然后启动到Windows 10时,它显示错误的时间。 我必须在Windows 10中手动或通过互联网进行更正,当我重新启动到Windows 10时,这不是问题。 时钟将显示正确的时间。 然后当我重新启动到Linux时,时钟是正确的,但切换回Windows 10,时钟再次混乱。
多个引导系统时间冲突
操作系统在主板上的硬件时钟中存储和检索时间,以便即使系统没有电源也可以跟踪时间。 大多数操作系统(Linux / Unix / Mac)默认将时间作为UTC存储在UTC上 ,尽管某些系统(特别是Microsoft Windows)将时间作为“本地”时间存储在硬件时钟上。 如果两个系统以不同方式查看硬件时钟,则会导致双引导系统出现问题。
将硬件时钟设置为UTC的优点是,在时区之间移动时或夏令时(DST)开始或结束时,您不需要更改硬件时钟,因为UTC没有DST或时区偏移。
将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中仍需要时间同步,则使用任何第三方时间)同步解决方案):
sc config w32time start= disabled
扭转变化
您可以创建包含以下内容的文件,然后双击它以合并原始更改,如上所述:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=-
如果禁用了Windows时间服务,请使用以下命令再次启用它:
sc config w32time start= demand
解决方案2:让Linux使用“本地”时间
告诉您的Ubuntu系统硬件时钟设置为“本地”时间:
Pre-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帮助