硬體時鐘與系統時鐘同步問題

regonly1發表於2009-05-01
建了一個虛擬機器,發現每次重啟後系統時鐘總是跟現有時間相差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時間分為系統時鐘和硬體時鐘。
硬體時鐘是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  顯示版本資訊。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-592420/,如需轉載,請註明出處,否則將追究法律責任。

相關文章