歡迎您光臨本站 註冊首頁

Linux時間時區設定

←手機掃碼閱讀     火星人 @ 2014-03-23 , reply:0

  今天把Debian裝好在一個月餅盒大小的台式機上面了。

  第一個遇到的問題就是時間設定,Debian裡面的系統時間跟硬體時間對不上,偏差了8個小時。原因是由於MS的OS一直以來都沒有支持到UTC的時間設定,一換到支持UTC的Linux就遇到這樣的問題了。(關於UTC,請參照《時間縮寫解釋》)。其實Debian是建議使用UTC時間的,只是自己還是習慣Windows(不懂UTC的OS),所以把自己的Debian也改過來了。

  在Linuix 系統裡面,系統時間由3個因素決定:硬體時間、UTC(/etc/default/rcS)、Timezone。

  /etc/default/rcS 裡面的UTC選項,告訴Linux系統,這個硬體時間是否UTC時間。Timezone 是設定系統所處UTC時區(我現在用的是 Asia/Shanghai)。

  最後,系統啟動時候讀出硬體時間,再根據是否UTC時間、系統所處Timezone計算出系統localtime。

  下面是硬體時鐘的時間。
  DNAS:~# hwclock --show
  Wed 03 Oct 2007 09:40:10 PM CST  -0.169539 seconds

  由於我已經在/etc/default/rcS 裡面設置了UTC=no,告訴了系統,硬體時間並不是UTC時間。之後系統時間就會根據以下兩個文件決定時區了:

  /etc/timezone
  /etc/localtime

  timezone 是一個文本文件,只需要把自己所處的時區寫進去就可以了,我的是 Asia/shanghailocaltime 直接從 /usr/share/zoneinfo 把自己所處時區的文件做一個 ln 過去就好了。

  ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

  下面是date命令所返回的日期時間,這是已經計算過的了。

  DNAS:~# date
  Wed Oct  3 21:38:11 CST 2007

  接下來就是關於系統時間、硬體時間同步問題了

  在剛裝好的系統裡面, hwclock 這個命令是返回這樣的錯誤的:
  select() to /dev/rtc to wait for clock tick timed out

  也就是說系統不能訪問硬體時間(RTC),也許是因為自己的新型號機器BIOS的處理方式跟Linux的老款RTC module之間有兼容問題。

  有問題,換一個RTC module就是了。Linux的RTC module有下面三個 rtc/genrtc/rtc_dev

  modprobe
  hwclock --show
  rmmod

  把三個module都試過,看哪個比較好用的。

  然後修改 /etc/modprobe.d/blacklist 把不好用的blacklist掉, /etc/modules 把好用的那個加上。我自己用的就是 rtc_dev 這個module。

  關於 date/hwclock 命令的使用,man一下就有很詳細了。

[火星人 ] Linux時間時區設定已經有730次圍觀

http://coctec.com/docs/linux/show-post-119490.html