debian的时间设置
2008-06-16 16:32
239 查看
http://203.208.37.104/search?q=cache:kPBH2P2FeV4J:yokoko.vicp.net/simple/index.php%3Ft221.html+debian%E7%B3%BB%E7%BB%9F%E6%97%B6%E9%97%B4&hl=zh-CN&ct=clnk&cd=3&gl=cn&lr=lang_zh-CN&inlang=zh-CN&st_usg=ALhdy2-9NQZDmjS5oW_7b6UeWIqYNLc5Ug
查看完整版本: [-- Debian 系统时间BUG解决 --]
如果給你陽光,請隨便燦爛 -> 〖Unix/Linux〗 -> Debian 系统时间BUG解决 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题
violetmoon 2008-05-16 22:07
先说时区的配置。以前Debian有个好用的时区配置工具,叫tzconfig,现在也没有了。但配置时区倒也简单,主要是两个文件:
/etc/localtime
/etc/timezone
timezone这个文件是个文本,里面只需要写一行自己的时区就行,我们这里就是上海,Asia/Shanghai(谁知道为什么不是北京呢?)。 localtime这个文件的类型不清楚,里面就写了些timezone data,它可以从系统自带时区文件那里拷贝,位置在:
/usr/share/zoneinfo
从这个目录下找到Shanghai拷贝到/etc下的localtime即可。有人说建个连接也可,这样还可以保证系统数据有变化时不必再管。
设定了时区,还要确定Linux的时间方案。Linux支持UTC时间,Coordinated Universal Time,也就是世界协调时,也就是本初子午线上的时间,它和以前的格林威治标准时(GMT)的区别似乎是它是由多个原子钟平均出来的。在 /etc/default/rcS这个文件中,设定了系统是否使用UTC,UTC=yes就是用。
计算机自己还有自己的时间,也就是硬件时间,hard clock,也就是存在BIOS里那个时间,关机也不会丢失。计算机启动时,就要读取这个时间。这个时间如果设定为UTC(GMT),也就是伦敦那地方的时间,就要在rcS文件中设定UTC=yes,反之则要设为no。
总之就是两种正确的设置:
BIOS=本地时间,UTC=no
BIOS=UTC时间,UTC=yes
一般来讲,BIOS里面都设定为当地时间,这是因为如果装双系统的话,Windows似乎不懂utc,就会出问题。这时UTC=no。
如果一切顺利,到这时,进入Linux之后显示的时间应该是正确的了。但不少人的机器,包括这回这台640m,仍旧不正确,而是比正确时间再往前跑了8小时。这里的问题出在Linux读取硬件时间上了。
Linux读取这个硬件时间要用到hwclock这个命令:
hwclock --show :显示硬件时间
hwclock --systohc :将系统时间写入硬件
hwclock --hctosys :将硬件时间写入系统时间
在出问题的时候,hwclock 这一组命令的运行通常是不能成功的,错误经常是这样的:
select() to /dev/rtc to wait for clock tick timed out
也就是不能读取/dev/rtc,也就是硬件时间。这又是因为某些机器的BIOS处理方式和Linux的rtc内核模块之间出现了问题。
Linux又有3个这类模块,rtc/genrtc/rtc_dev,似乎是一个比一个新,而debian通常自己用的是rtc这个老模块;但 Dell/ibm/acer等等厂商现在都可能使用新的BIOS,这种BIOS和这个rtc就可能不对付。如果出现了上面那个timeout的问题,有两种方法可以解决:
1, 给hwclock加参数,--directisa,也就是:
hwclock --directisa --show
如果运行成功,说明这个办法可行。则把此参数添加为hwclock的缺省参数即可。在debian 4.0之后,可以直接在/etc/default/rcS中添加一行:
HWCLOCKPARS="--directisa“
而在4.0以前,可能只能在hwclock启动脚本中添加,/etc/init.d/hwclock.sh,把里面的”/sbin/hwclock“ 全部替换为 ”/sbin/hwclock --directisa"。现在在debian sid中,这个脚本的第一行其实是HWCLOCKPARS=,也可以像rcS一样添加参数了。
2, 换用其他内核rtc模块,用如下方法测试哪个模块好用:
# modprobe rtc
# hwclock --show
# rmmod rtc
# modprobe genrtc
# hwclock --show
# rmmod genrtc
# modprobe rtc_dev
# hwclock --show
# rmmod rtc_dev
没有显示time out的就是好用的了,然后可以在blacklist中阻止不好用的,在modules里面加上好用的那个。
用完这两个方法,hwclock应该能直接工作了,也就是可以读取硬件时间了。再配上utc设置正确,重启之后时间就是对的了。
为了让BIOS时间更准确,除了可以找个精确的时间源,比如CDMA手机或是GPS,靠自己的手指来精确设定BIOS时间之外,还可以用hwclock把准确的时间写入BIOS。前一种方法细心点可以做到几秒误差,而后一种怎么也在1秒以下了。
安装ntpdate这个包,它可以从时间服务器上读取到正确的时间,精度还是很高的:
aptitude install ntpdate
ntpdate pool.ntp.org
此时系统时间就已经是ntp的时间了,相当精确,把它写入硬件:
hwclock --systohc
这样BIOS时间也就很准了。以后开机没网络,没办法运行ntpdate的时候也都是准的。
这里的关键有:bios时间,utc设定,rtc模块,hwclock读取,ntpdate对时。
在Debian的老bug里还看到因为系统有多个分区,比如/usr单独分,fsck运行时会对时,并因此又造成快几个小时的问题,不知道怎么处理的。
在新装Debian的时候,重启后就会进入base-config程序。
提示你是否设定时间为GMT,选否,时区选shanghai。
如果你选择失误,就会被时间的不准所困扰,下面是解决方案。
第一步#编辑文件/etc/timezone为以下内容
Asia/Shanghai
第二步# date MMDDhhmmCCYY
设定系统时间和硬件时间为MM/DD hh:mm, CCYY。
显示时间为本地时间而硬件时间使用UTC。
例1:设置时间为下午14点36分。
# date -s 14:36:00
Fri Nov 26 14:15:00 CST 1999
例2:设置时间为1999年11月28号。
# date -s 991128
Sun Nov 28 00:00:00 CST 1999
第三步# hwclock --utc --systohc
第四步# hwclock --show
附录:
UTC Universal Time Coordinated,世界标准时间
GMT Greenwich Mean Time,格林尼治时间
CST China standard Time ,中国标准时间
#date -u 显示标准时间
四 3月 10 03:51:56 UTC 2005
#date 显示本地时间
四 3月 10 11:52:54 CST 2005
查看完整版本: [-- Debian 系统时间BUG解决 --]
如果給你陽光,請隨便燦爛 -> 〖Unix/Linux〗 -> Debian 系统时间BUG解决 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题
violetmoon 2008-05-16 22:07
先说时区的配置。以前Debian有个好用的时区配置工具,叫tzconfig,现在也没有了。但配置时区倒也简单,主要是两个文件:
/etc/localtime
/etc/timezone
timezone这个文件是个文本,里面只需要写一行自己的时区就行,我们这里就是上海,Asia/Shanghai(谁知道为什么不是北京呢?)。 localtime这个文件的类型不清楚,里面就写了些timezone data,它可以从系统自带时区文件那里拷贝,位置在:
/usr/share/zoneinfo
从这个目录下找到Shanghai拷贝到/etc下的localtime即可。有人说建个连接也可,这样还可以保证系统数据有变化时不必再管。
设定了时区,还要确定Linux的时间方案。Linux支持UTC时间,Coordinated Universal Time,也就是世界协调时,也就是本初子午线上的时间,它和以前的格林威治标准时(GMT)的区别似乎是它是由多个原子钟平均出来的。在 /etc/default/rcS这个文件中,设定了系统是否使用UTC,UTC=yes就是用。
计算机自己还有自己的时间,也就是硬件时间,hard clock,也就是存在BIOS里那个时间,关机也不会丢失。计算机启动时,就要读取这个时间。这个时间如果设定为UTC(GMT),也就是伦敦那地方的时间,就要在rcS文件中设定UTC=yes,反之则要设为no。
总之就是两种正确的设置:
BIOS=本地时间,UTC=no
BIOS=UTC时间,UTC=yes
一般来讲,BIOS里面都设定为当地时间,这是因为如果装双系统的话,Windows似乎不懂utc,就会出问题。这时UTC=no。
如果一切顺利,到这时,进入Linux之后显示的时间应该是正确的了。但不少人的机器,包括这回这台640m,仍旧不正确,而是比正确时间再往前跑了8小时。这里的问题出在Linux读取硬件时间上了。
Linux读取这个硬件时间要用到hwclock这个命令:
hwclock --show :显示硬件时间
hwclock --systohc :将系统时间写入硬件
hwclock --hctosys :将硬件时间写入系统时间
在出问题的时候,hwclock 这一组命令的运行通常是不能成功的,错误经常是这样的:
select() to /dev/rtc to wait for clock tick timed out
也就是不能读取/dev/rtc,也就是硬件时间。这又是因为某些机器的BIOS处理方式和Linux的rtc内核模块之间出现了问题。
Linux又有3个这类模块,rtc/genrtc/rtc_dev,似乎是一个比一个新,而debian通常自己用的是rtc这个老模块;但 Dell/ibm/acer等等厂商现在都可能使用新的BIOS,这种BIOS和这个rtc就可能不对付。如果出现了上面那个timeout的问题,有两种方法可以解决:
1, 给hwclock加参数,--directisa,也就是:
hwclock --directisa --show
如果运行成功,说明这个办法可行。则把此参数添加为hwclock的缺省参数即可。在debian 4.0之后,可以直接在/etc/default/rcS中添加一行:
HWCLOCKPARS="--directisa“
而在4.0以前,可能只能在hwclock启动脚本中添加,/etc/init.d/hwclock.sh,把里面的”/sbin/hwclock“ 全部替换为 ”/sbin/hwclock --directisa"。现在在debian sid中,这个脚本的第一行其实是HWCLOCKPARS=,也可以像rcS一样添加参数了。
2, 换用其他内核rtc模块,用如下方法测试哪个模块好用:
# modprobe rtc
# hwclock --show
# rmmod rtc
# modprobe genrtc
# hwclock --show
# rmmod genrtc
# modprobe rtc_dev
# hwclock --show
# rmmod rtc_dev
没有显示time out的就是好用的了,然后可以在blacklist中阻止不好用的,在modules里面加上好用的那个。
用完这两个方法,hwclock应该能直接工作了,也就是可以读取硬件时间了。再配上utc设置正确,重启之后时间就是对的了。
为了让BIOS时间更准确,除了可以找个精确的时间源,比如CDMA手机或是GPS,靠自己的手指来精确设定BIOS时间之外,还可以用hwclock把准确的时间写入BIOS。前一种方法细心点可以做到几秒误差,而后一种怎么也在1秒以下了。
安装ntpdate这个包,它可以从时间服务器上读取到正确的时间,精度还是很高的:
aptitude install ntpdate
ntpdate pool.ntp.org
此时系统时间就已经是ntp的时间了,相当精确,把它写入硬件:
hwclock --systohc
这样BIOS时间也就很准了。以后开机没网络,没办法运行ntpdate的时候也都是准的。
这里的关键有:bios时间,utc设定,rtc模块,hwclock读取,ntpdate对时。
在Debian的老bug里还看到因为系统有多个分区,比如/usr单独分,fsck运行时会对时,并因此又造成快几个小时的问题,不知道怎么处理的。
在新装Debian的时候,重启后就会进入base-config程序。
提示你是否设定时间为GMT,选否,时区选shanghai。
如果你选择失误,就会被时间的不准所困扰,下面是解决方案。
第一步#编辑文件/etc/timezone为以下内容
Asia/Shanghai
第二步# date MMDDhhmmCCYY
设定系统时间和硬件时间为MM/DD hh:mm, CCYY。
显示时间为本地时间而硬件时间使用UTC。
例1:设置时间为下午14点36分。
# date -s 14:36:00
Fri Nov 26 14:15:00 CST 1999
例2:设置时间为1999年11月28号。
# date -s 991128
Sun Nov 28 00:00:00 CST 1999
第三步# hwclock --utc --systohc
第四步# hwclock --show
附录:
UTC Universal Time Coordinated,世界标准时间
GMT Greenwich Mean Time,格林尼治时间
CST China standard Time ,中国标准时间
#date -u 显示标准时间
四 3月 10 03:51:56 UTC 2005
#date 显示本地时间
四 3月 10 11:52:54 CST 2005
相关文章推荐
- debian系统时间设置
- debian设置系统时间
- debian(lenny)下的时区/时间设置
- 设置linux系统时间、时区(Debian)
- Debian 中的时区与时间设置
- 【Debian】时间设置
- [记录]Debian 下面的时间设置
- debian 7 wheezy时间设置
- [记录]Debian 下面的时间设置
- debian系统时间设置
- debian初始设置 之 时间设置
- Debian 8 设置时区和时间配置
- Debian 6 7 8 utc时间设置
- debian时间设置
- Debian 下面的时间设置
- debian系统设置时间,时区
- [VC] 设置系统时间
- android项目从零开始 RecycleView 设置滚动到某item时间
- QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置
- 切换图片、fragment;可以控制循环、时间,添加下标及下标设置,fragment 添加标题及标题设置