双启动系统Windows XP Pro和Ubuntu 12.04。

我将BIOS设置为正确的时间,将Ubuntu设置为美国东部时间。 Ubuntu将启动,并且时间将减少-4小时。如果我在Ubuntu中更正了时间,则在Windows XP中启动时,时间将减少+ 4小时。

这是新安装的12.04。在重新安装Ubuntu之前我没有这个问题。

#1 楼

https://help.ubuntu.com/community/UbuntuTime#Multiple_Boot_Systems_Time_Conflicts


多个引导系统时间冲突

操作系统在硬件中存储和检索时间时钟
位于主板上,以便即使系统没有电源时也可以跟踪时间。默认情况下,大多数操作系统
(Linux / Unix / Mac)将硬件时钟上的时间存储为UTC,
,尽管某些系统(尤其是Microsoft Windows)将硬件时钟上的时间存储为
。 “本地”时间。如果两个系统对硬件时钟的看法不同,这会在双启动系统中引起问题。

将硬件时钟作为UTC的优点是您不必
/>在时区之间移动时或
由于UTC没有DST或时区偏移而导致夏令时(DST)开始或结束时,需要更改硬件时钟。

更改与将Windows更改为使用UTC相比,Linux使用本地时间更容易且更可靠,因此双引导Linux / Windows系统倾向于使用本地时间。

因为Intrepid( 8.10),默认为UTC。

使Windows使用UTC

注意:Windows Vista和Server 2008最初不支持此方法,但Vista SP2附带了此方法。 ,Windows 7,Server 2008 R2
和Windows 8 / 8.1。

要使MS Windows从硬件时钟中将时间计算为UTC。

创建文件命名为WindowsTimeFixUTC.reg并具有以下
con帐篷,然后双击它以将内容与
注册表合并:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=dword:00000001


注意:Windows Time服务仍将本地时间写入RTC关闭时上面的注册表设置的位置,因此使用此命令禁用Windows Time服务非常方便(如果在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


使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





评论


我的天。我不敢相信它们足够笨,无法在硬件时钟上使用本地时间。你为什么会这样做?

–iono
2013年12月9日7:22

@twome,因为既然在MS-DOS的早期没有太多的联网方式,并且将PC移到可以移动时区的地方并不常见。 (是的,即使考虑到这段历史,这仍然不是最好的举动)。

–琼·汉娜(Jon Hanna)
2014年4月22日在13:44

@twome虽然我同意您的看法,但硬件时钟仍保持通用,因为它不保留时区信息,所以几乎没有问题:A)BIOS / UEFI具有各种功能,例如自动唤醒/睡眠计时器,您可以在其中设置这些触发器的时间。在UTC中设置这些时间很奇怪-至少对于普通用户而言。 B)正如Jon所说,是向后兼容的原因。

– Shahriyar Imanov
2014年5月15日19:19

在Windows PowerShell中,运行以下命令以更新上述注册表属性:New-ItemProperty -Path HKLM:\ SYSTEM \ CurrentControlSet \ Control \ TimeZoneInformation -Name RealTimeIsUniversal -PropertyType DWord -Value 00000001

– Analyly Mironov
2015年1月14日9:29



对于那些浏览文本的人,您只需要更改其中一个操作系统的设置,而不必同时更改两个。

–亚历山大·雷沃(Alexander Revo)
17年8月8日在19:29

#2 楼

要将BIOS时钟设置为本地时间而不是基于Systemd的版本(15.04及更高版本)中的UTC,必须使用timedatectl命令。根据Arch Wiki:


您可以通过命令行设置硬件时钟时间标准。
您可以通过以下方式检查要使用的硬件设置:

$ timedatectl | grep local


可以使用timedatectl
命令查询和设置硬件时钟。要将硬件时钟时间标准更改为本地时间,请使用:

# timedatectl set-local-rtc 1


如果要还原为UTC的硬件时钟,请执行以下操作:

# timedatectl set-local-rtc 0



评论


在Ubuntu 16.10上,它有助于执行“ hwclock --systohc --localtime”。这会将“本地部分”写入/ etc / adjtime,从而使其成为永久性的。

–user1050755
16-10-21在19:25

@ user1050755是在timedatectl命令之前,之后还是代替的?

– nasch
18年1月16日,0:45

#3 楼

您的时区为东部时间,当前为EDT(东部夏令时间)。 EDT是UTC减去四个小时,与您遇到的偏移量相同。

在双引导系统上发生这种情况时,通常是因为一个操作系统认为硬件时钟跟踪本地时间,而另一个操作系统认为硬件时钟跟踪UTC。

在您的情况下,您的硬件时钟可能设置为本地时间,并且:


Windows是设置为使用本地时间(给定的时间设置)正确。
Ubuntu设置为使用UTC(给定的时间设置)不正确。

如果您只是想手动或自动重置Ubuntu系统中的时间,然后在Windows中会出错,所以这不是一个好的解决方案。

,最好的解决方案可能是重新配置Ubuntu以处理硬件将时钟时间设置为本地时间(然后,您可以单独保留Windows配置和硬件时钟时间)。

为此,请以root用户身份编辑/etc/default/rcS并确保其具有UTC=no


按Alt + F2。
键入gksu gedit /etc/default/rcS并按Enter。

您可能会看到以下内容:

# assume that the BIOS clock is set to UTC time (recommended)
UTC=yes



如果这样做,请将UTC=yes更改为UTC=no。 (或者,您也可以通过将其更改为类似UTC=no # changed to accommodate Windows system的方式来添加注释。#字符之后的一行上的所有内容均为注释,并且仅是为了使您的设置更易于理解。)
如果您没有,寻找任何UTC=行。如果没有注释(即开头没有#),请相应地进行更改。如果有注释,请通过删除开头的#取消注释,并确保其显示为UTC=no


保存文件并退出文本编辑器。
重新启动以应用更改并请检查时间是否可以在两个操作系统上正常运行。

来源:https://help.ubuntu.com/community/UbuntuTime#Make_Linux_use_.27Local.27_time

(但这很笼统;我写了这个答案专门针对您的情况,这是一个普遍的问题。)

评论


请注意,当您从一个Ubuntu版本升级到另一个Ubuntu版本时,也会发生这种情况,就像对我一样。我可以建议执行上述修复,然后按照此答案手动同步时钟(将其调整为与systemd配合使用):askubuntu.com/a/254846/139735

– starbeamrainbowlabs
16 Jun 20'20:03



这应该是恕我直言的答案。我已经安装了Windows并运行良好,然后又安装了Ubuntu,时钟变得一团糟-如果显然是添加的linux破坏了我的配置,我看不出修改Windows设置的原因。

– Przemek D
18年4月18日在8:03

#4 楼

/ etc / rcS修复不适用于我的Win7 / Ubuntu 14.04x64安装,也无法通过时钟GUI进行任何修复。因为问题的根源是BIOS时间与UTC时间,而Windows在使用UTC方面是一个难题,所以我只是在地图上选择了一个使用UTC + 0的点(BIOS与UTC时间之间没有变化) 。

尝试将您的位置更改为雷克雅未克(冰岛首都)。瞧!您的Ubuntu时间将更改为与您的BIOS时间匹配。

评论


哈哈!太棒了:D我真的不在乎我的位置。这是两秒钟的修复。非常感谢。

–浅蓝点
15年3月10日在9:05