解決VMware或者VirtualBox與Hyper-V衝突

衝突問題表現

  1. VMWare報不兼容錯誤
解決VMware或者VirtualBox與Hyper-V衝突

  1. VirtualBox啟動虛擬機系統時報錯

Call to WHvSetupPartition failed!

問題產生原因

  1. 主動安裝了Hyper-V相關程序或者啟用了windows的應用沙盒
  2. 開啟了WSL 2


解決VMware或者VirtualBox與Hyper-V衝突


解決方案

不論是哪種,都只要關閉Hyper-V相關設置,並卸載,就可以恢復。

1.使用Win+Q,搜索“啟用或關閉 Windows 功能”。

解決VMware或者VirtualBox與Hyper-V衝突

2.取消對“Hyper-V”和“Windows沙盒選項的勾選”,然後點擊確定,等待處理完成。

解決VMware或者VirtualBox與Hyper-V衝突

3.關機重新,問題解決...

等等,你以為問題到這裡就解決了?那當然不可能!如果這麼易於解決的話,那麼就不會有下面這張圖了~


解決VMware或者VirtualBox與Hyper-V衝突

真的很難嗎?其實,很簡單,只需一句代碼~~

<code>bcdedit /set hypervisorlaunchtype off/<code>

在Powershell執行上面的代碼,然後重啟,就會驚喜的發現,VirtualBox和VMware就都可以使用了!

不過別高興得太早,對於那些使用WSL 2的Win用戶,你還需要把WSL降級到WSL 1,否則,你的windows子系統依然沒有辦法使用!

4.WSL2降級

在 PowerShell 中運行:

<code>wsl --set-version 【Distro】 1/<code>

並確保將 【Distro】 替換為發行版的實際名稱。 (你可以使用以下命令找到它們:wsl -l)。在這裡最後的參數“1”表示為降級至WSL1版本。

(ps:如果是升級的話,只要把1改成2即可)

此時再次使用bash,即可啟用WSL 1版本的windows子系統。

寫在最後

這裡還有個問題,就是Genymotion或者其他一些模擬器就算在關閉Hyper-V後,可能依然無法使用,這是由於它們的設置緩存導致的,在總設置裡清理一下,重啟電腦,就可以使用了。

其實,windows的沙盒功能對於那些不使用其他虛擬機的用戶來說,非常友好,用完即毀,保護了原始工作系統不被損壞。但是,對於一些部分開發者來說(例如:Linux或者Android開發者來說),其實是不必要的。

不過,凡事都有利弊,使用工具的是人,工具是死的,人是活的,怎麼方便怎麼來~


分享到:


相關文章: