關於VirtualBox與UTC導致的虛擬機器時間差8小時的問題解決
問題描述:
標題雖然僅與VirtualBox相關,其實主要還是因為docker的問題。
windows下使用docker要使用官方的DockerToolbox工具,會自動產生VirtualBox虛擬機器。
而且此虛機所有配置都是不能改動的,因為沒有意義,每次重啟虛機都會重置改動(實測新建目錄除外),
我猜想這是因為docker虛機的sata儲存採用的是boot2docker.iso這個打包盤導致的。
既然不能改動,那麼諸如時間、root密碼、docker使用者密碼什麼的都是不能改動的。
後兩者其實問題不大,因為docker不會暴露宿主機,改不改沒關係,但是時間困擾了我很久。
問題:
主機(本機)和虛機之間相差8個小時。
例如當前時間為9:30,那麼docker的時間則是1:30。
解決方案:
8小時這麼整齊的時間,一看就知道是UTC的時區設定問題。
google了一下,在虛機的設定-->系統裡面,可以把UTC的設定取消掉:
充滿期待地重啟虛機,發現時間沒有變,還是差8個小時。
root使用者嘗試重設時間:
date -s 9:30
可以發現時間確實是改了,但是過個3、5秒之後再date一下,發現時間又變回來了。
說明VirtualBox還有時間同步服務在執行,而且使用的是UTC時間。
翻閱資料,按照如下操作即可:
cmd視窗下:
c:
cd "C:\Program Files\Oracle\VirtualBox"
VBoxManage setextradata "default" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" "1"
其中default是虛擬機器的名字(如上圖中標題欄的內容,注意大小寫)。
執行完之後重啟虛機,會發現時間已經與當前主機的時間一致了。
不懂,也不想去研究了,只要符合需求就好。
-------------------------------------------------
參考文獻: