用 Ubuntu (或者其它 Linux 發行版)和 Windows 雙系統時可能會發現切換系統後總有一小段時間時鐘時間是不對的,要麼早 8 小時要麼晚 8 小時。形成這種情況的緣由是對 RTC 的時區認識不一樣。RTC 就是主板上的硬件時鐘,關機甚至斷電以後靠電池持續計時,等下次系統啓動時會讀取用來初始化本身的時鐘。在大多數系統中,獲取系統時間都不會每次讀取 RTC,而是在內存中保存一個計數器用於表示時間。由於 RTC 是沒有時區概念的,因此當系統初始化時認爲這個時間是什麼時區的,就決定了系統初始顯示的時間是什麼。在缺省狀況下,Windows 當 RTC 是按本地時區計時,Ubuntu 當 RTC 是按 UTC 時區計時,因此同一個 RTC 時間在 2 個系統中解釋就不一樣。當系統運行起來以後一段時間,時間同步服務會把系統時間改回爲正確的時間。這也就是爲何雙系統在切換後的一小段時間裏時間顯示有問題了。code
要解決這個問題無非是把全部系統的設置改成一致的了,Windows 要修改註冊表,看起來比較麻煩,在 Ubuntu 下修改只須要 1 條命令內存
sudo timedatectl set-local-rtc 1
寫這篇文章的時候,Ubuntu 的最新版本是 18.04,僅須要上面這條命令就足夠,若是仍是有問題,能夠嘗試 sudo hwclock -w
把系統時間再寫入 RTC。同步