解決linux的centos版本修改時間重啟后無效的問題


安裝完centos后,發現時間與本地時間不匹配,在網上找了好多的辦法,但是一直沒有奏效,重啟之后,又恢復為原來的時間。很是納悶。最后抱着試一試的心態加上了這句指令: ln -sf /usr/share/zoneinfor/Asia/Shanghai /etc/localtime  重啟之后,竟然修改過來了,長舒了一口氣。下面將詳細的指令列出來,希望能夠對你有所幫助。

      linux的時間分為兩種,硬件時間和系統時間兩種:

     1: 顯示系統時間:#date
    修改系統時間: date -s '2012-08-02 12:00'   #設置系統時間為本地時間

    2:顯示硬件時間:#hwclock --show
    設置硬件時間:#hwclock --set --date '08/02/2012 12:00:00'

    3:這就是硬件時間同步系統時間:hwclock --hctosys 

    4:這個命令強制把系統時間寫入CMOS:clock -w

    如果你只需要上面4步,在重啟之后,修改就生效的話,那就恭喜你,不用看下面一步了,如果還不生效的話,那你就必須得用這關鍵的第5步了。

   5: ln -sf /usr/share/zoneinfor/Asia/Shanghai /etc/localtime     #更改時區

 

 

 

 

在Linux中有硬件時鍾與系統時鍾兩種時鍾。硬件時鍾是指主機板上的時鍾設備,也就是通常可在BIOS畫面設定的時鍾。系統時鍾則是指kernel中的時鍾。所有Linux相關指令與函數都是讀取系統時鍾的設定。因為存在兩種不同的時鍾,那么它們之間就會存在差異。當Linux啟動時,系統時鍾會去讀取硬件時鍾的設定,之后系統時鍾即獨立運作。

用date命令對系統時間進行設置后,並不會去修改硬件時鍾,所以系統重啟后,系統時間還算會去讀取硬件時間,這就是為何date設置失效到原因。

因此,需要在設置系統時間后,將系統時間同步到硬件時鍾。

clock/hwclock:

顯示與設定硬件時鍾(query and set the hardware clock (RTC)),兩個命令相同。RTC=Real Time Clock,也就是硬件時鍾。

命令參數:

-r, --show        讀取並打印硬件時鍾(read hardware clock and print result)
-s, --hctosys     將硬件時鍾同步到系統時鍾(set the system time from the hardware clock)
-w, --systohc     將系統時鍾同步到硬件時鍾(set the hardware clock to the current system time)

命令示例:

1. 查看硬件時鍾

2014年03月27日 星期四 11時03分50秒  -0.328520 seconds
[root@localhost ~]# hwclock -r
2014年03月27日 星期四 11時03分53秒  -0.797264 seconds
[root@localhost ~]# hwclock --show
2014年03月27日 星期四 11時04分01秒  -0.672267 seconds

2. clock與hwclock相同

復制代碼
[root@localhost ~]# type -a hwclock
hwclock is /sbin/hwclock
hwclock is /usr/sbin/hwclock
[root@localhost ~]# ll /sbin/hwclock /usr/sbin/hwclock 
-rwxr-xr-x. 1 root root 46940 11月 22 23:27 /sbin/hwclock
lrwxrwxrwx. 1 root root    18 3月  26 19:27 /usr/sbin/hwclock -> ../../sbin/hwclock
[root@localhost ~]# type -a clock
clock is /sbin/clock
[root@localhost ~]# ll /sbin/clock 
lrwxrwxrwx. 1 root root 7 3月  26 19:27 /sbin/clock -> hwclock
復制代碼

3. 同步系統時間到硬件時鍾

復制代碼
[root@localhost ~]# hwclock
2014年03月27日 星期四 18時50分51秒  -0.312960 seconds
[root@localhost ~]# date
2014年 03月 27日 星期四 10:50:55 CST
[root@localhost ~]# hwclock -w
[root@localhost ~]# hwclock
2014年03月27日 星期四 10時51分15秒  -0.875387 seconds
復制代碼

同步網絡時間到系統時間

[root@localhost ~]# ntpdate 210.72.145.44
27 Mar 11:11:24 ntpdate[4766]: adjust time server 210.72.145.44 offset 0.011401 sec

210.72.145.44 (中國西安授時中心的官方時間同步服務器IP域名)

同步網絡時間到系統時間后,就可以用hwclock -w將系統時間同步到硬件時間。

修改時區

可能部分系統在執行以上兩步后,在重啟后仍然失效,所以需要進行時區修改。

[root@localhost ~]# tzselect #按照提示進行選擇時區
[root@localhost ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

修改系統時間配置文件

[root@localhost ~]# /etc/sysconfig/clock

#打開clock文件,將相關內容改成以下內容
UTC=false
ARC=false
ZONE="Asia/Shanghai"

重啟系統

[root@localhost ~]# reboot
 
         
 
         
 
        
  1. 我使用的是centOS6.3,使用虛擬機重啟的時候顯示錯誤信息如下  
  2.   
  3. /dev/mapper/root: Superblock last mount time (Mon Mar  5 17:40:11 2012,  
  4.          now = Sat Mar  5 18:46:53 2011) is in the future.  
  5. /dev/mapper/root: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.  
  6.          (i.e., without -a or -p options)  
  7.                                                                                                  [FAILED]  
  8. *** An error occurred during the file system check.  
  9. *** Dropping you to a shell; the system will reboot  
  10. *** when you leave the shell.  
  11. Given root password for maintenance  
  12. (or type Control-D to continue):  
  13.   
  14.   
  15. 后來找到了解決的辦法:  
  16.   
  17. 在“(or type Control-D to continue):”處直接輸入密碼,進入修復模式,按照fsck <partition name>的形式運行修復,你的就運行fsck  /dev/mapper/root,然后reboot,重啟后可能還會提示其他盤出現相同的錯誤,按照fsck <partition name>的形式再次運行,然后reboot,在虛擬機上測試可以啟動了  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM