解决Windows10与Ubuntu16.04双系统时间不一样问题!(亲测,真正的正确方案)

  • 问题
  • 百度的解决方案(未成功)
  • 继续分析原因
  • 最终的解决方案(成功)


问题

笔记本电脑,双硬盘,双系统 。 win10 64bit装固态硬盘上,Ubuntu16.04 64bit装在机械硬盘上。发现Ubuntu的时间是正确的,win10时间总是不正确(没有计算过到底快或者慢了多少)。

百度的解决方案(未成功)

有了错误就要上网资料,百度清一色的解决方案如下:

sudo apt install ntpdate

sudo nptdate time.windows.com #更新本地时间

sudo hwclock –localtime –systohc #将本地时间更新到硬件上

根据如上的解决方案,得到如下的错误提示:

$ sudo apt install ntpdate  #安装
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列【新】软件包将被安装:
  ntpdate
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 48.7 kB 的归档。
解压缩后会消耗 173 kB 的额外空间。
获取:1 http://mirrors.ustc.edu.cn/ubuntu xenial-updates/main amd64 ntpdate amd64 1:4.2.8p4+dfsg-3ubuntu5.7 [48.7 kB]
已下载 48.7 kB,耗时 15秒 (3,206 B/s)
正在选中未选择的软件包 ntpdate。
(正在读取数据库 ... 系统当前共安装有 288765 个文件和目录。)
正准备解包 .../ntpdate_1%3a4.2.8p4+dfsg-3ubuntu5.7_amd64.deb  ...
正在解包 ntpdate (1:4.2.8p4+dfsg-3ubuntu5.7) ...
正在处理用于 man-db (2.7.5-1) 的触发器 ...
正在设置 ntpdate (1:4.2.8p4+dfsg-3ubuntu5.7) ...
zyq@zyq-Lenovo:~$ sudo nptdate time.windows.com   #问题1: 提示找不到命令
sudo: nptdate:找不到命令
zyq@zyq-Lenovo:~$ sudo hwclock --localtime --systohc  #问题2:无法通过任何已知的方法访问硬件时钟
hwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --debug option to see the details of our search for an access method.

继续分析原因

UTC即Universal Time Coordinated,协调世界时(世界统一时间)

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

Windows 与 Mac/Linux 看待系统硬件时间的方式是不一样的:Windows把计算机硬件时间当作本地时间(local time),所以在Windows系统中显示的时间跟BIOS中显示的时间是一样的。Linux/Unix/Mac把计算机硬件时间当作 UTC, 所以在Linux/Unix/Mac系统启动后在该时间的基础上,加上电脑设置的时区数( 比如我们在中国,它就加上“8” ),因此,Linux/Unix/Mac系统中显示的时间总是比Windows系统中显示的时间快8个小时。所以,当你在Linux/Unix/Mac系统中,把系统现实的时间设置正确后,其实计算机硬件时间是在这个时间上减去8小时,所以当你切换成Windows系统后,会发现时间慢了8小时。就是这样个原因。

最终的解决方案(成功)

第一种解决方法:

在Ubuntu中把计算机硬件时间改成系统显示的时间,即禁用Ubuntu的UTC:(需要重启)

timedatectl set-local-rtc 1 –adjust-system-clock

提示: 在 Ubuntu 16.04 版本以前,关闭UTC的方法是编辑/etc/default/rcS,将UTC=yes改成UTC=no, 但在Ubuntu 16.04使用systemd启动之后,时间改成了由timedatectl来管理

第二种解决方法:

修改 Windows对硬件时间的对待方式,让 Windows把硬件时间当作UTC:(需要重启)

在命令提示符下输入:

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

提示 : 命令提示符需要管理员权限,所以需要在管理员权限的命令提示符(win+r–>打开命令提示符(管理员))下执行命令。

你可能感兴趣的:(Ubuntu,Linux入坑系列)