您尚未登录。

#1 2018-12-11 19:04:25

AMOR
会员
注册时间: 2018-11-16
帖子: 41

关于安装系统前准备工作的问题,为什么要同步时间

看了下archwiki和其他安装教程,基本在系统分区前都要做以下几个准备工作:
1.设定键盘布局:为了敲代码
2.验证启动模式:涉及到分区,引导安装等
3.确认网络连接:pacstrap安装包
4.同步系统时间
前三步都明白各自的作用,但是最后一步不太明白为什么要在这里同步时间,而不是等到pacstrap后跟同步时区一起做呢,难道只是为了记录正确的系统安装时间?
而且为什么这里要用timedatectl set-ntp true手动设置同步呢,archlinux安装盘本身就是一个装在U盘里的linux系统,为什么就不能在启动后自动同步呢


这家伙很懒,就留下这么一行字

离线

#2 2018-12-11 19:21:23

Remilia
RemiliaForever
注册时间: 2016-03-14
帖子: 49
个人网站

Re: 关于安装系统前准备工作的问题,为什么要同步时间

应该是先同步系统时间,再pacstrap安装包。

系统时间不对可能造成ssl连接失败导致安装出错,有没有其他的影响就不太清楚了。

启动时不一定就连接上了网络,有的网络需要拨号。

离线

#3 2018-12-11 19:29:54

AMOR
会员
注册时间: 2018-11-16
帖子: 41

Re: 关于安装系统前准备工作的问题,为什么要同步时间

Remilia 说:

应该是先同步系统时间,再pacstrap安装包。

系统时间不对可能造成ssl连接失败导致安装出错,有没有其他的影响就不太清楚了。

启动时不一定就连接上了网络,有的网络需要拨号。

也就是说archwiki把timedatectl set-ntp true放在了网络设置之后,是为了确保能第一时间更新系统时间
如果先启动更新系统时间,而后配置的联网,联网后系统无法保证能在第一时间更新系统时间是吧


这家伙很懒,就留下这么一行字

离线

#4 2018-12-11 20:20:41

驿窗
驿窗
所在地: 基础开源研究
注册时间: 2016-06-03
帖子: 927
个人网站

Re: 关于安装系统前准备工作的问题,为什么要同步时间

我一直觉得,linux对于时间的设置,有一点反人类;尤其它会主动修改bios时间,这太儿戏了感觉;


开源/Linux大众化,从驿窗开始~

离线

#5 2018-12-11 21:28:09

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: 关于安装系统前准备工作的问题,为什么要同步时间

piter 说:

我一直觉得,linux对于时间的设置,有一点反人类;尤其它会主动修改bios时间,这太儿戏了感觉;

这不是很正常的么?

离线

#6 2018-12-12 13:16:22

zsrkmyn
lazy...
注册时间: 2013-05-05
帖子: 331

Re: 关于安装系统前准备工作的问题,为什么要同步时间

piter 说:

我一直觉得,linux对于时间的设置,有一点反人类;尤其它会主动修改bios时间,这太儿戏了感觉;

windoges 也会啊

离线

#7 2018-12-12 15:01:17

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 1,267

Re: 关于安装系统前准备工作的问题,为什么要同步时间

因为你要验证软件包签名啊,时间都不对,鬼知道这份公钥过期没过期


反社会,精神极其不稳定,随时可能炸碎身边所有人

离线

#8 2018-12-12 15:04:26

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 1,267

Re: 关于安装系统前准备工作的问题,为什么要同步时间

piter 说:

我一直觉得,linux对于时间的设置,有一点反人类;尤其它会主动修改bios时间,这太儿戏了感觉;

BIOS时间本来就是要改的,它存在的意义就是关机时保持壁挂钟,这样开机时再用它初始化系统壁挂钟,这样就时钟一直在走啦。否则你关机1年难道下次开机从1年前算起?


反社会,精神极其不稳定,随时可能炸碎身边所有人

离线

#9 2018-12-12 15:06:38

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 1,267

Re: 关于安装系统前准备工作的问题,为什么要同步时间

而且Windows默认把硬件时钟当本地时间才有毛病,万一我要改时区多麻烦。壁挂钟时间数据本来就应该永远是UTC,用户要看的时候才临时转换成本地时

最近编辑记录 xtricman (2018-12-12 22:33:16)


反社会,精神极其不稳定,随时可能炸碎身边所有人

离线

#10 2018-12-12 15:08:31

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 1,267

Re: 关于安装系统前准备工作的问题,为什么要同步时间

还有https证书,也要验过期时间


反社会,精神极其不稳定,随时可能炸碎身边所有人

离线

#11 2018-12-12 16:34:46

驿窗
驿窗
所在地: 基础开源研究
注册时间: 2016-06-03
帖子: 927
个人网站

Re: 关于安装系统前准备工作的问题,为什么要同步时间

xtricman 说:
piter 说:

我一直觉得,linux对于时间的设置,有一点反人类;尤其它会主动修改bios时间,这太儿戏了感觉;

BIOS时间本来就是要改的,它存在的意义就是关机时保持壁挂钟,这样开机时再用它初始化系统壁挂钟,这样就时钟一直在走啦。否则你关机1年难道下次开机从1年前算起?

我不清楚是不是因为我习惯了windows的时间方式;

我这么理解:
    bios时钟应该算是硬件时钟;

    应用软件如果需要读取当前时间,应该都是向操作系统来发出询问,然后系统给出一个当前时间,应用软件再用这个时间结果继续后续的运算;
    操作系统可以直接从bios读取时间,然后根据时区规则,计算出正确的当前当地时间,显示在当前屏幕上,并提供给需要的应用软件;
   
    在windows中,无论给出的是什么时区,显示的当前本地时间都是bios时钟时间;如果我们认为时间不对,那通常是我们认为本地时间不对,并不是认为UTC不对,所以我们需要调整本地时间,也就是调整bios时钟;通常情况下,如果bios时间没有错误,里面的时钟时间,应该都是正确的本地时间,所以,windows系统安装好以后,时间永远是正确的;只有一种情况会出现问题,那就是bios时钟不是本地时钟;

    默认在linux中,系统管理员按照时区规则设定本地时间,然后系统会按时区规则,修改bios时钟为utc时间;这样,通常在系统中存在两个时间,一个是UTC时间,一个是本地时间;但这个调整并不是因为bios时钟故障或错误,而是因为linux的计算规则;

    linux因为软件的计算规则,修改了硬件时间,这就是我感觉困惑的地方;理论上,软件有多种方法可以实现UTC时间与本地时间的换算,但linux选择了修改硬件时钟的方法;并且,硬件时钟并没有出现故障或错误;如果一定要认定错误或故障,那么就是因为它不是UTC时间;但实际上,它是不是UTC时间,对于系统来说,完全可以忽略,因为系统可以自己根据管理员提供的时区和本地时间进行计算;

    如果关机一年后再开机,时间还保持在一年前,那算是硬件时钟故障问题了;

    或者,我认为,任何对硬件的修改,都应该是尽量避免的;

    -----------------
    好像这种想法也有一部分因素是习惯了windows的原因,或者不习惯linux的原因...


开源/Linux大众化,从驿窗开始~

离线

#12 2018-12-12 16:37:46

驿窗
驿窗
所在地: 基础开源研究
注册时间: 2016-06-03
帖子: 927
个人网站

Re: 关于安装系统前准备工作的问题,为什么要同步时间

zsrkmyn 说:
piter 说:

我一直觉得,linux对于时间的设置,有一点反人类;尤其它会主动修改bios时间,这太儿戏了感觉;

windoges 也会啊


你不会是故意打错字吧  big_smile


开源/Linux大众化,从驿窗开始~

离线

#13 2018-12-12 17:19:08

Remilia
RemiliaForever
注册时间: 2016-03-14
帖子: 49
个人网站

Re: 关于安装系统前准备工作的问题,为什么要同步时间

piter 说:

我不清楚是不是因为我习惯了windows的时间方式;

我这么理解:
    bios时钟应该算是硬件时钟;

    应用软件如果需要读取当前时间,应该都是向操作系统来发出询问,然后系统给出一个当前时间,应用软件再用这个时间结果继续后续的运算;
    操作系统可以直接从bios读取时间,然后根据时区规则,计算出正确的当前当地时间,显示在当前屏幕上,并提供给需要的应用软件;
   
    在windows中,无论给出的是什么时区,显示的当前本地时间都是bios时钟时间;如果我们认为时间不对,那通常是我们认为本地时间不对,并不是认为UTC不对,所以我们需要调整本地时间,也就是调整bios时钟;通常情况下,如果bios时间没有错误,里面的时钟时间,应该都是正确的本地时间,所以,windows系统安装好以后,时间永远是正确的;只有一种情况会出现问题,那就是bios时钟不是本地时钟;

    默认在linux中,系统管理员按照时区规则设定本地时间,然后系统会按时区规则,修改bios时钟为utc时间;这样,通常在系统中存在两个时间,一个是UTC时间,一个是本地时间;但这个调整并不是因为bios时钟故障或错误,而是因为linux的计算规则;

    linux因为软件的计算规则,修改了硬件时间,这就是我感觉困惑的地方;理论上,软件有多种方法可以实现UTC时间与本地时间的换算,但linux选择了修改硬件时钟的方法;并且,硬件时钟并没有出现故障或错误;如果一定要认定错误或故障,那么就是因为它不是UTC时间;但实际上,它是不是UTC时间,对于系统来说,完全可以忽略,因为系统可以自己根据管理员提供的时区和本地时间进行计算;

    如果关机一年后再开机,时间还保持在一年前,那算是硬件时钟故障问题了;

    或者,我认为,任何对硬件的修改,都应该是尽量避免的;

    -----------------
    好像这种想法也有一部分因素是习惯了windows的原因,或者不习惯linux的原因...

不论linux还是windows进行时钟同步时都要修改硬件时钟,这个无法避免。

默认情况下windows并没有进行时区偏移等计算,而linux进行了时区计算。所以当你以windows为基准的时候,就会发现linux尝试修复“错误“的硬件时钟。反过来,当你以linux为基准的时候,windows同样会尝试修复“错误”的硬件时钟。这仅仅是两者默认的处理策略不同,不存在两者谁对谁错。

如果按windows默认的策略,同一时间在不同时区的服务器硬件时钟是不一致的,需要在软件层面处理。就像xtricman说的,如果你从一个时区移动到另一个时区,就需要重新同步硬件时钟。而按照linux的策略,硬件时钟是UTC时间,全球一致,你只需要修改时区,无需修改硬件时钟。

所以按照你的观点,linux应该是做的比windows的默认策略好的。

PS:双系统的时候,手动修改windows的时区为当地时区,两者处理策略就一致了。
PS2:因为硬件时钟没有时区和夏令时信息,我认为存储一个不带时区偏移的标准时钟应该是更优的。

离线

#14 2018-12-12 17:19:32

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: 关于安装系统前准备工作的问题,为什么要同步时间

piter 说:

但实际上,它是不是UTC时间,对于系统来说,完全可以忽略,因为系统可以自己根据管理员提供的时区和本地时间进行计算;

你是不是对 UTC 有什么误解?
你觉得一个变来变去的硬件时间很有趣?
硬件时间使用本地时间的话,你时区变动的时候你不是得改硬件时间?还是说你把你买电脑地方的时区当「UTC」用?
而如果它是UTC,系统时区你爱改不改,反正总是对的(只是不是你所在的时区而已)。就算你不经常满世界飞来飞去的,夏令时你听说过吧?
一个依靠手工维护的硬件时间,必然会造成混乱的。(不巧的话,证书有效时间、文件时间戳、签名时间……都会乱)

离线

#15 2018-12-12 21:58:09

驿窗
驿窗
所在地: 基础开源研究
注册时间: 2016-06-03
帖子: 927
个人网站

Re: 关于安装系统前准备工作的问题,为什么要同步时间

本来写了好多内容,后来全删除了;
原因是,在试图推翻你们的观点的过程中,我越来越发现,你们居然是对的,我不得不推翻自己之前的观点;bios时间使用UTC,确实好处多多;这一对比,windows是真的有点傻的感觉;

这个是什么原因造成的呢?
是不是因为windows是微软程序员集中在一栋大楼里做出来的,而linux是分散在世界许多不同时区的人一起做出来的?
unix不知道是啥规则...

最近编辑记录 驿窗 (2018-12-12 22:07:58)


开源/Linux大众化,从驿窗开始~

离线

页脚