Sunday, December 14, 2008

FreeBSD|FreeBSD timezone设置时区

FreeBSD设置时区

XP下在虚拟机中装了FreeBSD6.2,使用date命令出来的时间总跟XP的时间相差7个多小时.在XP 下到time.windows.com同步时间正常.如现在是15:04分.在FreeBSD使用ntpdate time.windows.com得到的时间是21:54.
使用
#sysinstall
选择Configure
选择Time Zone
UTC 选择 NO
选择Asia
选择China
选择East China - Beijing,Guangdong,Shanghai etc.
Does the abbreviation `CST' look reasonable? = OK
然后退出sysinstall.
#ntpdate time.windows.com
#date
问题依然存在.显示的时间还是有误.
在网上又找到另一种方法.直接修改/etc/localtime文件.
#cd /usr/share/zoneinfo/Asia
#cp Shanghai /etc/localtime
#adjkerntz -a
#date
问题还是没有解决
在网上搜索到一个装XP,FreeBSD双系统,并均使用GMT+8也出现类似问题.他最后解决问题原因,认为 是XP将cmos时间认为是英国时间.FreeBSD将cmos时间认为是北京时间.我从这得到启发会不会是虚拟机中的cmos时间有问题.重启 FreeBSD按F2进入虚拟机的BIOS,看到果然是cmos时间有误.改为XP系统时间进入系统.再次使用
#ntpdate time.windows.com
#date
系统时间正常了!

=========================

修改 Linux/freeBSD 系统时区

Wikipedia,自由的百科全书

1. 查看当前时区

 # vi /etc/sysconfig/clock

2. 修改设置时区

  方法(1)
# tzselect
方法(2 仅限于RedHat Linux 和 CentOS)
# timeconfig

3. 复制相应的时区文件,替换系统默认时区

  # cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime
对于中国服务器则执行:


# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

4. 将当前时间写入BIOS永久生效(避免重启后失效)

  # hwclock
==============================

0 修改FreeBSD 系统时间 (freebsd 时间为:UTC)

首先要了解这两个时间定义

UTC----全球标准时间指的是由世界时间标准设定的时间。原先也被称为格林威治标准时间或者 GMT
CST----CMOS时间,即本机的时间!

因为刚安装系统是使用UTC时间,所以安装系统后,需要设置回上海时区!
#date YYMMHHMM (年月时分) 设定当地时间
#cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 指定时区
#adjkerntz -a 调节COMS时间
#date

重启完后! 时间没有改变!!

PS:
adjkerntz 命令 adjkerntz = adjust kernal timezone
调节改变CMOS时间来反映出时区的改变及让kernel维持着当前的时区
-a 当时区改变时,这个形态被用来更新 CMOS 当地时间

No comments: