Chinaunix首页 | 论坛 | 博客
  • 博客访问: 308788
  • 博文数量: 321
  • 博客积分: 10055
  • 博客等级: 上将
  • 技术积分: 3780
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-29 13:03
文章分类

全部博文(321)

文章存档

2012年(1)

2010年(7)

2009年(1)

2008年(312)

我的朋友

分类: LINUX

2008-09-20 19:43:27

有时发现Linux还真是有点囧,前两天发现重启之后,系统时间会莫名其妙的会退后跳跃。偶尔会从2008年跳到2012年,没有任何征兆。

  网上搜了一下,Linux系统下有两个时间概念,系统时间和硬件时间。硬件时间是主板上的电池和晶振维护的时间,而系统时间则是Linux系统所用的时间,它在每次系统启动是由硬件时间和时区等参数得到。硬件时间和系统时间之间的同步和校准有一套比较“复杂”的机制。系统认为自己的系统时间是准确的,而硬件时钟会有偏差,于是就将偏差写到/etc/adjtime文件中。系统启动的时候,会读取根据偏差,调整硬件时钟。

  问题就出在这个/etc/adjtime文件。打开一看。误差时间相当多,也就是说,我现在把系统时间和硬件时间都设置成标准时间,下次启动时会自动将时间更改掉。改的幅度就由这个adjtime中内容决定。

  解决办法:1)rm -r /etc/adjtime date 改系统时间和hwclock -w改硬件时间,重启。OK

  2)将启动脚本/etc/init.d/boot.clock中加载时间偏移的部分注释掉。重新修改系统时间到正常时间。OK

  两个问题:方法1)不排除下次还复现的可能。

  方法2)不能保证时间的精确。

  不知道还有没有更好的办法。
阅读(258) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~