|
|
发表于 2006-10-5 19:42:26
|
显示全部楼层
Linux 下可以说有两种时钟。系统时钟 system clock 是用 date 调整。硬件时钟 hardware clock 也习惯叫 BIOS 时钟 或 CMOS 时钟,使用 hwclock 调整。关机后靠电池供电继续运行的是硬件始终。系统时钟做的只是在 Linux 启动的时候跟硬件始终对一下表,然后依靠内核中断运行。
Windows只有一个时钟,即硬件时钟(不知道现在的Win有没有变化)。用Win的情况下硬件时钟的时间就是当前时钟。用linux的时候要设置正确的时区。
同时提醒你,一般的发行版本都不会在关机的时候把系统时间存入硬件时钟。所以你用 date 调整的时间只影响到你开机到关机这段时间。而用 hwclock 设置了硬件时钟而没有使用 --systohc 选项的话,你 date 输出的时间依然不是你调整的时间。
系统时间很不准,我的电脑开机8小时左右系统时间和硬件时钟就会差2秒左右。同时我的机器硬件时钟比真实世界的始终每天又慢3秒 :)硬件时钟靠 /etc/adjtime 文件来减少误差。你要做的就是经常用硬件时钟和北京时间对表,linux下机器的硬件时钟就会越来越精确。软件时钟消除误差是靠 adjtimex 软件(名字好像写错了:)。开了它或者网络同步时间的程序 linux 的同步时间就会被打开,每11分把硬件时钟调整为系统时钟的时间。
好像跑题了:)差8小时纯粹是设置问题。因发行版本差异有所不同,原理都是一样。我不用 Debian,不回答了:)
hwclock --adjust 通过 /etc/adjtime 文件修正硬件始终
hwclock --hctosys 将系统时钟时间设置为硬件时钟的时间
hwclock --systohc 将硬件时钟时间设置为系统时钟时间
你需要的选项就这些了 (x86的机器)。 |
|