衝突問題表現
- VMWare報不兼容錯誤
- VirtualBox啟動虛擬機系統時報錯
Call to WHvSetupPartition failed!
問題產生原因
- 主動安裝了Hyper-V相關程序或者啟用了windows的應用沙盒
- 開啟了WSL 2
解決方案
不論是哪種,都只要關閉Hyper-V相關設置,並卸載,就可以恢復。
1.使用Win+Q,搜索“啟用或關閉 Windows 功能”。
2.取消對“Hyper-V”和“Windows沙盒選項的勾選”,然後點擊確定,等待處理完成。
3.關機重新,問題解決...
等等,你以為問題到這裡就解決了?那當然不可能!如果這麼易於解決的話,那麼就不會有下面這張圖了~
真的很難嗎?其實,很簡單,只需一句代碼~~
<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開發者來說),其實是不必要的。
不過,凡事都有利弊,使用工具的是人,工具是死的,人是活的,怎麼方便怎麼來~
閱讀更多 Ruby呀 的文章