`
Linux小红花
  • 浏览: 14027 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Linux下系统时间快8小时

阅读更多

先说时区的配置。以前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运行时会对时,并因为又造成快几个小时的问题,不知道怎么处理的。

 

更多精彩linux视频教程,尽在51CTO学院:
wKioL1PE_n3z629yAACXIHScsJM092.jpg
分享到:
评论

相关推荐

    LINUX 下C++ 获取系统时间和设置时间

    在Linux环境下,使用C++获取和设置系统时间是一项常见的任务,尤其在开发系统级程序时。本文将详细探讨如何利用C++在Linux中操作时间。 首先,我们需要了解Linux中的时间模型。在Linux中,时间主要分为两类:系统...

    linux的Qt设置系统时间

    总结,通过Qt 4.8.5,我们可以利用`QDateTime`和`QProcess`类来获取和设置Linux系统的日期和时间,以及管理时区。在进行这些操作时,理解Linux的命令行工具和权限管理是非常重要的。同时,要确保代码的安全性和用户...

    ARM2440平台LINUX系统时间的设置修改方法

    在深入探讨ARM2440平台上LINUX系统时间的设置与修改方法之前,首先需要理解系统时间与硬件时间的概念及其在Linux环境下的作用。 - **硬件时间**:指的是计算机主板上内置的实时时钟(RTC),即我们常说的“BIOS时钟...

    linux系统设置时间

    linux系统设置时间,如何在linux系统下设置时间。

    linux系统上使用qt修改开发板时间

    在Linux系统上,开发人员有时需要对开发板的时间进行调整,特别是在进行自动化测试或系统调试时。Qt是一个流行的跨平台应用程序开发框架,它提供了丰富的GUI控件,包括QTimeEdit和QDateEdit,用于处理时间和日期。本...

    Java设置linux系统时间

    利用Java代码设置Linux系统时间。设置时间精确到毫秒级别。

    linux系统时间设置,和大家分享分享linux

    理解这两者之间的区别和交互方式对于有效地管理和维护Linux系统至关重要。 系统时钟是Linux内核中的时间戳,它记录着系统运行时的当前时间。可以通过`date`命令来查看和设置系统时钟。例如,要将系统时间设置为2005...

    linux赋予普通用户修改系统时间权限

    ### Linux赋予普通用户修改系统时间权限 在Linux环境中,为了保证系统的安全性,通常只有管理员(通常是root用户)具有修改系统时间的权限。然而,在某些情况下,我们可能需要让普通用户也能够修改系统时间,比如在...

    趣谈Linux操作系统

    Linux操作系统是一种自由、开源的操作系统,它基于Unix系统设计,由林纳斯·托瓦兹在1991年首次发布。Linux操作系统的核心是内核,它负责管理系统的硬件资源,调度进程,以及确保多任务的顺利运行。Linux的开放源码...

    基于嵌入式Linux系统下的Qt开发.pdf

    概述:本文主要讲述了在嵌入式Linux系统下进行Qt开发的相关知识点,包括嵌入式系统的发展、Qt在嵌入式Linux系统下的应用、Qt/E mbedded图形系统的移植、嵌入式Linux系统下的图形用户界面开发等。 一、嵌入式系统的...

    linux 系统时间设置方法

    Linux 系统时间设置方法 Linux 系统时间设置是指通过编程方式或命令行方式设置 Linux 系统的时间。在 Linux 系统中,时间设置是非常重要的,因为空间时间的正确性直接影响到系统的稳定性和安全性。 一、编程方式...

    linux系统时间修改及同步等

    在Linux系统中,时间管理是一项重要的任务,...总的来说,Linux系统时间的管理和同步涉及多个层面,包括系统时钟、硬件时钟、NTP服务和时区设置。理解这些概念并正确操作,对于保持系统正常运行和数据一致性至关重要。

    Linux时间子系统.pdf

    在Linux系统中,时间子系统不仅包括了对时间的简单读取,还包括了时间的管理、同步、调度等多个方面。下面将基于提供的文件内容,对Linux时间子系统展开详细的知识点说明。 1. 时间的基本概念 Linux时间子系统首先...

    Linux系统时间NTP同步设置

    ### Linux系统时间NTP同步设置 #### 知识点概览 1. **NTP(Network Time Protocol)简介** 2. **Linux系统日期与时间查看命令** 3. **硬件时钟与系统时钟同步** 4. **手动进行NTP同步** 5. **定时任务设置自动NTP...

    Linux 操作系统开发手册.CHM

    8、Linux指令之文件目录、时间日期、搜索查找、压缩和解压 9、Linux组管理和权限管理 10、Linux任务调度 11、Linux磁盘操作 12、Linux进程管理 13、Linux RPM 包和YUm包 14、Linux上安装JDK、Tomcat、Eclipse...

    Linux系统调用(返回当前的系统时间)

    Linux 系统调用 - 返回当前系统时间 Linux 系统调用是操作系统中最基本的接口之一,它允许用户空间应用程序和内核之间进行交互。系统调用是用户空间应用程序和内核提供的服务之间的一个接口。由于服务是在内核中...

    linux系统快速启动十大秘诀

    Linux系统的快速启动秘诀主要集中在优化系统配置、精简启动过程以及调整硬件和软件参数等方面。以下是对这些秘诀的详细阐述: ...但通过合理配置,可以显著提升Linux系统的启动速度,从而为用户节省宝贵时间。

Global site tag (gtag.js) - Google Analytics