设置系统时钟的技巧
这是一个小麻烦. 可能不少人遇到过, 系统时间怎么折腾都有毛病. 下面这些步骤我都觉得有点郁闷, 不过, 按这些步骤弄完, 系统时间应该就正常了. 如果你有更好的解决方法, 一定要记得共享哦 ;) 首先我们按手册里的方法把时区设置好, 这里用了 Chongqing, 没关系, 全中国都是一样的时间:

代码:
# ln -sf /usr/share/zoneinfo/Asia/Chongqing /etc/localtime
# date

date 命令这时给出的时间肯定不对. 为什么? 因为系统启动时默认的系统时间 (注意和硬件时间分开) 是 UTC 的 (也就是格林威治标准时间 – 说错没??), 在我们把 localtime 指向 Chongqing 之后, 系统就以当前的 *它以为的* UTC 时间为基础, 加上 (或减去?) Chongqing 时区和它之间的时差, 于是得到一个错误的时间. 但是呢, 主板上的硬件时间却还是正确的:

代码:
# hwclock –show

这时我们把正确的硬件时间同步回系统时间:

代码:
# hwclock –hctosys

接着编辑系统的时间设置为本地 (local) 时间而非 UTC 时间:

代码:
# nano -w /etc/conf.d/clock
(将 CLOCK=”UTC” 改成 CLOCK=”local”)

但系统随后重启后时间还是不正常, 为什么了又? 这是因为, 系统最初启动时默认是认为自己在 UTC 时区的, 它启动的时候, 把正确的硬件时间同步到系统时间; 在我们把 local 指向 Chongqing 之后, 它以当前的 UTC 时间算出一个错误的时间 (如前面解释); 通过把正确的硬件时间再次同步回系统时间之后, 系统重启时候的关机阶段, 会反过来把系统时间往硬件时间上同步 – 问题就在这里出现 – 系统最初启动是以 UTC 时区来设定系统时间的, 它关机的时候也还是认为自己在 UTC 时区 (尽管时间显示正确)! 于是, 它在把目前正确的系统时间往硬件时间上同步时, 就又算了一次, 这回就把硬件时间弄错了… 启动后再从硬件时间同步回系统时间, 自然也是错… 这时, 由于我们改过 /etc/conf.d/clock 了, 因此系统启动后是正确地认为自己在 Chongqing 时区了, 所以, 我们只需这个时候把系统时间和硬件时间都校准了, 就不会再出现 “瞎计算” 的情况了. 注意: 出于逻辑的连贯性, 我把下面的步骤写在这里了, 实际上, 我们应该在装完内核配置完用户等步骤完成之后, 系统重启了, 才执行下面两个命令来更改系统时间

代码:
# date 120610092004
# hwclock –systohc
时间出错解决方法

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.