1. 程式人生 > >關於VirtualBox與UTC導致的虛擬機器時間差8小時的問題解決

關於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是虛擬機器的名字(如上圖中標題欄的內容,注意大小寫)。

執行完之後重啟虛機,會發現時間已經與當前主機的時間一致了。


原理:

不懂,也不想去研究了,只要符合需求就好。


-------------------------------------------------

參考文獻:

1. virtualbox中虛擬機器時間不能與主機同步

2. VirtualBox 設定時間不同步