雙系統時間同步


問題描述


不管是在Windows還是Ubuntu中設置了正確時間,在切換操作系統的時候,還是會出現時間不同步的情況

原因是Windows和Ubuntu在默認情況下看待硬件時間(主板上的BOIS顯示的時間)的方式不一樣

  • Windows把系統硬件時間當作本地時間(Local time),即操作系統中顯示的時間跟BIOS中顯示的時間是一樣的

  • Linux/Unix/Mac把硬件時間當作UTC(Universal Time Coordinated,協調世界時),操作系統中顯示的時間是硬件時間經過換算得來

假如你的Ubuntu和Windows中設置的時區都為北京時間東八區,而你在Ubuntu中把當前系統時間更改為9:00AM。則此時硬件中存儲的實際時間是1:00AM。這時你重啟進入Windows后,你會發現 windows系統中顯示的時間是1:00AM,比Ubuntu中慢了八個小時。同理,你在 Windows中更改或用網絡同步了系統時間后,再到Ubuntu中去看,系統就會快了8小時

更改Ubuntu


轉為Local Time

如果是Ubuntu16.04之前的版本,只需要將Ubuntu的UTC時間切換成Local Time

可以直接編輯配置文件,將/etc/default/rcS文件中的UTC=yes改成UTC=no

sudo gedit /etc/default/rcS

   
   
  
  
          
  
  
 
 
         
  • 1

如果想要快速修改配置文件

sudo sed -i 's/UTC=no/UTC=yes/' /etc/default/rcS

   
   
  
  
          
  
  
 
 
         
  • 1

使用ntpdate校准時間

如果是Ubuntu16.04,那么配置文件中可能沒有UTC=yes,這時候可以用ntpdate校准時間

安裝ntpdate

sudo apt-get install ntpdate

   
   
  
  
          
  
  
 
 
         
  • 1

校准時間

sudo ntpdate time.windows.com

   
   
  
  
          
  
  
 
 
         
  • 1

如果你是安裝的Windows+Ubuntu雙系統,需要將時間更新到硬件上,以免Windows的時間不對

sudo hwclock --localtime --systohc

   
   
  
  
          
  
  
 
 
         
  • 1

更改Windows


如果要讓Windows把硬件時間當作UTC,在CMD窗口(快捷鍵Win+R,輸入cmd,回車)中輸入如下命令,可以快速編輯注冊表

Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

   
   
  
  
          
  
  
 
 
         
  • 1

或者直接編輯注冊表,打開注冊表編輯器(快捷鍵Win+R,輸入regedit,回車),並找到一下目錄位置

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/TimeZoneInformation/

   
   
  
  
          
  
  
 
 
         
  • 1

添加一項類型為REG_DWORD的鍵值,命名為RealTimeIsUniversal,值為1,重啟后時間即回復正常


免責聲明!

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



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