解决Windows与Ubuntu双系统时间同步问题

Ubuntu和Windows默认的时间管理方式不同,所以双系统发生时间错乱是正常的。Ubuntu默认时间是把BIOS时间当成GMT+0时间,也就是世界标准时,而我国在东八区(GMT+8),所以如果你的Ubuntu位置是中国的话你系统显示的时间就是BIOS时间+8小时。假如现在是早上8点,那么你Ubuntu会显示8点,这时BIOS中的时间是0点。

而当你切换到Windows系统时就会发生时间错乱,因为Windows会认为BIOS时间就是你的本地时间,结果就是Windows显示时间为0点……而假如你在Windows下同步时间,恢复显示为8点,这时BIOS时间也会被Windows改写成8点,再次进入Ubuntu时显示时间又变成了8+8=16点……

解决的办法有两个,一个是让Windows使用Ubuntu的时间管理方式,就是启用UTC(世界协调时)另一个就是让Ubuntu按照Windows的方式管理时间,就是让Ubuntu禁用(世界协调时)。个人建议第二种,因为通常Windows是主系统,不推荐对Windows进行这种修改,不过我还是都介绍一下:

在Windows下启用UTC

打开运行窗口(快捷键Win+R),然后输入regedit启动注册表编辑器,并找到一下目录位置:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/TimeZoneInformation/

添加一项类型为REG_DWORD的键值,命名为RealTimeIsUniversal,值为1然后重启后时间即回复正常。

在Ubuntu下关闭UTC

这个用这个方法是我比较推荐的:按Ctrl+Alt+T调出终端,输入:

sudo gedit /etc/default/rcS

按Ctrl+F调出查找,找到UTC=yes这一行,改成UTC=no,保存即可,时间修改立即生效。这样就可以解决Windows与Ubuntu双系统时间同步问题了。

让Windows使用UTC时间

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
    "RealTimeIsUniversal"=dword:00000001

以上内容存为.Reg文件,导入,或者手动修改即可让Windows使用UTC时间

这个方法适合于Linux/Windows双系统的用户,普通的Windows用户就不要折腾了,没这个必要。

Linux和win7双系统时间错误问题

前一段时间刚装了centos 5.4和win7的双系统。发现win7的系统时间不对,机子没上网,每天开机时,总会慢8小时,不知道怎么回事,因为忙别的事情,所以过了那几天才找原因,后来发现 windows time服务没有自动,所以想当然认为是这个原因。

用了几次也没发现什么异常,因为今天开机时候没插网线,直接进了 ubuntu,发现时间快了8小时,插上网线就正常了,所以觉得不太正常,所以重启进了win7,发现慢了8小时,这才意识到可能是两个系统设置不同,导 致的这个时间问题。于是google:

两个概念:

UTC即Universal Time Coordinated,协调世界时

GMT 即Greenwich Mean Time,格林尼治平时

Windows 与 Mac/Linux 缺省看待系统硬件时间的方式是不一样的:

Windows把系统硬件时间当作本地时间(local time),即操作系统中显示的时间跟BIOS中显示的时间是一样的。

Linux/Unix/Mac把硬件时间当作 UTC,操作系统中显示的时间是硬件时间经过换算得来的,比如说北京时间是GMT+8,则系统中显示时间是硬件时间+8。

这样,当PC中同时有多 系统共存时,就出现了问题。

假如你的linux设置的时区都为北京时间东八区,当前系统时间为9:00AM。则此时硬件中存储的实际是UTC 时间1:00AM。这时你重启进入Windows后,你会发现windows系统中显示的时间是 1:00AM,比linux中慢了八个小时。同理,你在Windows中更改或用网络同步了系统时间后,再到linux中去看,系统就会快了8小时。 在实行 夏令时的地区,情况可能会更复杂些。

解决这个问题的方法:

1. 可让 Ubuntu 不使用 UTC 时间与 Windows 保持一致。

ubuntu默认开启UTC,即协调世界时,而win7是使用这种计时方式,这将导致的结果就是Windows和Ubuntu时间计算 有差异

你 可以使用以下方法得到一致的时间:

sudo gedit /etc/default/rcS

找到这一行:UTC=yes

把 yes改为no

在fedora(我是fedora 13)下,一次打开System–>Administration–>Date & Time在Time Zone选项卡下把System clock uses UTC前面的勾去掉,确定。稍微过几分钟系统时间就正常了。

2. 修改 Windows 对硬件时间的对待方式,这样只在 Windows 上修改后就无需在Ubuntu 上设置了。

让 Windows 把硬件时间当作 UTC

开 始->运行->CMD,打开命令行程序(Vista则要以管理员方式打开命令行程序方 可有权限访问注册表),在命令行中输入下面命令并回车

代码:

  Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

(文/离人心上秋 转载请注明出处http://mtoou.info/linux-win7-shijian/)