前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术角 | 解决Windows 10与Ubuntu 18.04双系统机器上Windows时间同步有误的问题

技术角 | 解决Windows 10与Ubuntu 18.04双系统机器上Windows时间同步有误的问题

作者头像
ZNing
发布2020-05-13 16:00:57
1K0
发布2020-05-13 16:00:57
举报
文章被收录于专栏:ZNing·腾创库

接前文,安装完Windows 10与Ubuntu 18.04双系统之后,发现个问题:每次进Ubuntu后,下次再进Windows发现时间总是异常的差了8小时。后来搜了下资料发现了问题并解决。现简单总结下解决方式。

注意:本文首次撰写于2019-07-13,最近修改时间为2019-07-13,请注意相关程序的可用性与安全性。

问题原因

Ubuntu和Windows默认的时间管理方式不同,所以双系统发生时间错乱是正常的。

Ubuntu默认时间是把BIOS时间当成GMT+0时间,也就是世界标准时,而我国在东八区(GMT+8),所以如果你的Ubuntu位置是中国的话你系统显示的时间就是BIOS时间+8小时, 假如现在是早上8点,那么你Ubuntu会显示8点。

而当你切换到Windows系统时就会发生时间错乱,因为Windows会认为BIOS时间就是你的本地时间,结果就是Windows显示时间为0点。而假如你在Windows下同步时间,恢复显示为8点,这时BIOS时间也会被Windows改写成8点。

问题解决

Ubuntu 16.04(不含)以前的系统,可以编辑下面的文件通过调整Ubuntu关闭UTC功能。

代码语言:javascript
复制
sudo vim /etc/default/rcS

找到UTC=yes这一行,改成UTC=no,保存即可,时间修改立即生效。

Ubuntu 16.04及以后的系统,此文件已经没有了,我们通过安装ntpdate更新时间并写入BIOS来解决这个问题。

代码语言:javascript
复制
sudo apt-get install -y ntpdate
sudo ntpdate time5.aliyun.com

安装并更新时间后,接下来写入硬件:

代码语言:javascript
复制
sudo hwclock --localtime --systohc

不过,后面这个解决方案对于18.04好像有点特别。使用后面ntpdate的解决方案隔一段时间问题又会发生。再次执行上面的命令就好了,但是这不是长久之计。秉着一劳永逸的原则,将上面的内容做成脚本设为系统服务,并设置开机启动执行,这样就可以解决这个问题了。

脚本内容,我的放置位置是/etc/timeUTC.sh

代码语言:javascript
复制
#!/bin/bash
sudo ntpdate time5.aliyun.com
sudo hwclock --localtime --systohc

建立文件/etc/systemd/system/timeUTC.service,写入如下内容:

代码语言:javascript
复制
[Unit]
After=syslog.target network.target

[Service]
ExecStart=/etc/timeUTC.sh

[Install]
WantedBy=multi-user.target

依次执行如下命令,使其自启生效:

代码语言:javascript
复制
sudo systemctl daemon-reload
sudo systemctl enable timeUTC.service

运行命令并查看命令情况,如果没有failed报错,显示inactive(即正常执行并退出脚本)即为正常:

代码语言:javascript
复制
sudo systemctl start timeUTC
sudo systemctl status timeUTC
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 慧响 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题原因
  • 问题解决
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档