是否可能同時運行Hyper-V和第三方虛擬機?

以Windows10 1903為例,有很多功能需要基於Hyper-V。但由於一些其他需求,需要使用VMware和virtualbox。那是否有可能使幾種hypervisor同時存在呢?


一年多以前,我發現 Windows 預覽版相關 API 變化的時候提過這個問題:

Windows Hypervisor Platform API 是否意味著什麼??

www.zhihu.com圖標

然而關注的人太少,到現在也沒有太理想和細緻的解答。

按照我自己連蒙帶猜的理解,這個 API 至少可以讓第三方的虛擬化軟體保留自己的界面和用戶態工具,通過 API 使用 Hyper-V 作為虛擬化底層。如此「共存」。

2020-06-11 更新:

  • QEMU:v2.12 版本開始試驗性支持(稱為whpx) https://wiki.qemu.org/ChangeLog/2.12#Host_support
  • VirtualBox:v6.1.4 以後恢復支持(看意思是曾經取消過)https://www.virtualbox.org/wiki/Changelog-6.1#v4
  • VMware Workstation:v15.5 開始支持 https://blogs.vmware.com/workstation/2020/05/vmware-workstation-now-supports-hyper-v-mode.html


可以,前提是第三方虛擬機需要支援搜尋結果Windows Hypervisor Platform API。

Windows Hypervisor Platform API類似linux的KVM,都是type1的虛擬機。 type1的虛擬機,特色是Hypervisor在主系統之上,主系統和其他系統處於平行的位置。所以整個系統只能有一個Hypervisor。導致啟用了KVM的linux,一樣不能用Virtualbox。

type2的虛擬機,主系統在最上層,每個程式有權限的話都可以申請成為Hypervisor,所以可以Virtualbox VMware各自運行。

type1的虛擬機,Virtualbox或是VMware,或是QEMU就只是前端GUI而已了,後端還是調用系統Hypervisor提供的API,來創建管理虛擬機。

微軟的Hyper-V一開始只有自己能用。2018以後,微軟開放了API,讓大家都能調用,就可以保有自己的前端介面,但是使用Hyper-V做為後端了。自從Virtualbox 6以後,也已經已經支援這個API了,VMware也支援了。所以可以一起使用。

但是Virtualbox 6這個功能預設關閉,要手動打開才行。管理員執行以下指令:

cmd
cd "C:Program FilesOracleVirtualBox"
VBoxManage setextradata global "VBoxInternal/NEM/UseRing0Runloop" 0

以後,Virtualbox就可以和Hyper-V同時使用了(其實是使用Hyper-V做為後端)。

有圖為證:


印象中 vm 的兼容問題已經解決了,vb 的 ms 還在弄。

當然,我沒有 win 10 專業版……


Windows 10 Pro的話,可以同時運行VirtualBox和Hyper-V了,Win是1909,VB是最新版。測試時間2020年4月16日,正好今天用到。


看起來是Windows 10客戶端

印象中記得開啟HyperV之後再開啟VMware虛擬機會提示不兼容。


開了Hyper–v之後,Vmware就使不了了,提示不兼容


不開CPU虛擬化加速可以,開了就會造成藍屏


VMware Workstation Tech Preview 20H1 - Hyper-V/Host VBS Support - VMware Workstation Zealot?

blogs.vmware.com

VMware可以和hyper-v共存 ,參見上面的文檔,使用最新版本的Windows系統和VMware版本


推薦閱讀:

TAG:微軟Microsoft | 操作系統 | 虛擬機 | HyperV | Windows10 |