建了一个虚拟机,发现每次重启后系统时钟总是跟现有时间相差10多个小时
用date -s进行修正之后,再次重启又出现该问题。于是怀疑跟硬件时钟有关
用hwclock看了下,发现的确硬件时钟的时间存在差异。调整硬件时钟:
hwclock --set --date
[root@localhost ~]# date -s '2009-05-01 6:06:01'
Fri May 1 06:06:01 CST 2009
[root@localhost ~]# date
Fri May 1 06:06:02 CST 2009
[root@localhost ~]# sync
[root@localhost ~]# hwclock
Thu 30 Apr 2009 10:30:13 PM CST -0.697852 seconds
[root@localhost ~]# man hwclock
[root@localhost ~]# hwclock --set --date='05/01/2009 06:10:01'
[root@localhost ~]# hwclock
Fri 01 May 2009 06:10:09 AM CST -0.464026 seconds
原来linux时间分为系统时钟和硬件时钟。
Fri May 1 06:06:01 CST 2009
[root@localhost ~]# date
Fri May 1 06:06:02 CST 2009
[root@localhost ~]# sync
[root@localhost ~]# hwclock
Thu 30 Apr 2009 10:30:13 PM CST -0.697852 seconds
[root@localhost ~]# man hwclock
[root@localhost ~]# hwclock --set --date='05/01/2009 06:10:01'
[root@localhost ~]# hwclock
Fri 01 May 2009 06:10:09 AM CST -0.464026 seconds
原来linux时间分为系统时钟和硬件时钟。
硬件时钟是bois中的时间,系统时间是kernel中的时间。
系统时钟在每次启动的时候读取硬件时钟,然后就独立运作。因此只修改了系
统时钟而不修改硬件时钟的话在系统重启后时间还会不正确。
功能说明:显示与设定硬件时钟。
语 法:hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test]
[--utc][--version][--set --date=<日期与时间>]
补充说明:在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。
参 数:
--adjust hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。
--debug 显示hwclock执行时详细的信息。
--directisa hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟。
--hctosys 将系统时钟调整为与目前的硬件时钟一致。
--set --date=<日期与时间> 设定硬件时钟。
--show 显示硬件时钟的时间与日期。
--systohc 将硬件时钟调整为与目前的系统时钟一致。
--test 仅测试程序,而不会实际更改硬件时钟。
--utc 若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。
--version 显示版本信息。
语 法:hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test]
[--utc][--version][--set --date=<日期与时间>]
补充说明:在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。
参 数:
--adjust hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。
--debug 显示hwclock执行时详细的信息。
--directisa hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟。
--hctosys 将系统时钟调整为与目前的硬件时钟一致。
--set --date=<日期与时间> 设定硬件时钟。
--show 显示硬件时钟的时间与日期。
--systohc 将硬件时钟调整为与目前的系统时钟一致。
--test 仅测试程序,而不会实际更改硬件时钟。
--utc 若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。
--version 显示版本信息。