以前就看過 VMware Workstation 的用戶在論壇上抱怨 mks (mouse, keyboard, screen) 子系統的問題,自己倒是幸運地從版本 9 開始,一路隨著每次的改版,升級到版本 16.2 從來沒碰過這種問題。不料,這次將 Virtual Machine 的 Configuration 升級到 17 後,立刻就碰到這個問題。這個錯誤屬於無法復原的錯誤,會造成虛擬機器無法開啟,所以不解決的話就得跟虛擬機器說再見,所以也要趁機再跟大家提醒備份的重要性,若一時之間無法解決,至少還可以退回到舊版的 16.2 去。
傻瓜的解決方案
這個問題跟虛擬機器中的顯示卡設定,啟用 Accelerate 3D graphics 加速功能有關。因此,最簡單的方式就是開啟虛擬機器的設定,將 Accelerate 3D graphics 加速設定關閉,即可避開這個錯誤,就可以成功將虛擬機器開機。
不過,使用這個傻瓜方案,付出的代價就是 VMware Workstation 的虛擬機器,得到的是一張傻瓜的顯示卡,缺少 Accelerate 3D graphics 加速功能,虛擬機器成功開機之後,可能會執行的相當”緩慢”,效能受到嚴重的影響。
聰明的解決方案
這邊提供一個聰明的解決方案,其中牽涉到下列兩個聰明的設定:
- mks.sandbox.socketTimeoutMS
- 因為 Lost connection 的原因,有可能是等候的時間太短,導致提前 Timeout 發生錯誤,因此網路上有人教把這個值設定成 200000 ,也就是說在 Timeout 之前會等候 200 秒, 大約是三分鐘左右。很有可能錯誤只是因為 mks 子系統啟動速度受到影響,稍微等候它完成初始化,就可以避開這個錯誤。
- mks.dx12.vendorID
- 由於我自己設定了 socketTimeoutMS 之後,還是出現 Lost connection 的錯誤,可見案情並不單純。因此,又稍微研究了一下錯誤訊息的內容,發現 VMware Workstation 沒有選擇到我的 NVIDIA Quadro K3100M 顯示卡,所以就手動將 vendorID 的值設定為 4318 (或是 0x10DE) 。
- venderID 取得的方式可以觀察 mksSandbox.log 中的資訊,例如我自己的顯示卡資訊如下:
2022-11-21T04:53:07.504Z Wa(03) mks DX12Module: Available adapters:
2022-11-21T04:53:07.504Z Wa(03) mks DX12Module: Intel(R) HD Graphics 4600
2022-11-21T04:53:07.504Z Wa(03) mks DX12Module: VendorId = 32902, DeviceId = 1046, SubSysId = 97325096, Revision = 6, AdapterLuid = 064377, Flags = 28
2022-11-21T04:53:07.504Z Wa(03) mks DX12Module: DedicatedVideoMemory =
117964800, DedicatedSystemMemory = 0, SharedSystemMemory = 2147483648
2022-11-21T04:53:07.509Z Wa(03) mks DX12Module: NVIDIA Quadro K3100M
2022-11-21T04:53:07.509Z Wa(03) mks DX12Module: VendorId = 4318, DeviceId = 4534, SubSysId = 365760552, Revision = 161, AdapterLuid = 065238, Flags = 2c
2022-11-21T04:53:07.509Z Wa(03) mks DX12Module: DedicatedVideoMemory = 4249288704, DedicatedSystemMemory = 0, SharedSystemMemory = 4245291008
因此,把下面兩行加入 .vmx 設定檔案之後,虛擬機器就可以正常開機:
mks.sandbox.socketTimeoutMS = "200000"
mks.dx12.vendorID = "4318"
雖然,論壇中還是有人反映,這兩個設定雖然可以讓虛擬機器成功開機,但是虛擬機器運行一段時間之後還是會出現當機、崩潰的情況。不過自己工作上使用的虛擬機器,倒是已經維持一周未關機,還是持續運作正常,就跟這個錯誤尚未出現之前那般正常。(註:工作使用的虛擬機器,通常只有在 Windows Update 要求之下,才會重新開機。)預祝大家也跟我一樣,套用這兩個設定之後就可以「馬照跑、舞照跳」地繼續行走江湖!
在〈VMware Workstation 17 出現 mks ISBRendererComm: Lost connection to mksSandbox 該怎麼辦?〉中有 1 則留言