早前安裝 Windows 10 時已一併設定好 WSL2,準備寫 Code 用。今天啓動 WSL2 時居然回報系統沒有 Virtualization。左試又試搞了一輪,終於修復。以下總結修復方法供你參考。
(忘記 Cap 圖,以下網上找回錯誤訊息)
WSL2 is not supported with your current machine configuration.
Please enable the "Virtual Machine Platform" optional component and ensure virtualization is enabled in the BIOS.
Enable "Virtual Machine Platform" by running: wsl.exe --install --no-distribution
For information please visit https://aka.ms/enablevirtualization
Error code: Wsl/Service/CreateInstance/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED
当前计算机配置不支持 WSL2。
请启用“虚拟机平台”可选组件,并确保在 BIOS 中启用虚拟化。
通过运行以下命令启用“虚拟机平台”: wsl.exe --install --no-distribution
有关信息,请访问 https://aka.ms/enablevirtualization
Error code: Wsl/Service/CreateInstance/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED
原因
我的 Macbook Air 百分百肯定是支援 Virtualization 的,否則最初我也無法成功安裝 WSL2啦!所以是軟件問題。
起初根據標準做法,把 Hyper-V,WSL 移除,再重新安裝。可是都未能成功。
最後在 StackExchange 找到解決方法,得知如果從 Mac OS 設定下次用 Windows 開機,就可以成功開動 Virtualization 並操作 WSL2。我跟著步驟測試,果然如此,不過實在太麻煩。
便再跟進使用其他網友都讚賞的方法。現中譯如下:
最佳解決方法
現在確定了問題源頭是 透過 Bootcamp 直接進入 Windows 時,沒有把 Virtualization 的設定打開。
經 MacOS 再 reboot 進入 Windows 則有打開﹐我看法是 Bootcamp 開機的 boot sequence 缺少了相關的 config。
解決方法是利用第三方開機工具 rEFInd,取代 Mac 自帶的開機工具。
rEFInd 官方網站:https://www.rodsbooks.com/refind/getting.html
- 取得 rEFInd:
先在 MacOS 下載 rEFInd 的 binary。 - 進入 MacOS 回復程式:
重新開機,立即按下 Cmd+R,直至進入回復程式。 - 在回復程式中使用 Terminal,暫時關掉 MacOS SIP:
輸入csrutil disable;
。重新開機返回 MacOS。 - 設定 rEFInd:
把 rEFInd 解壓縮,修改 refind/refind.conf-sample。
在接近文件底部找出;enable_and_lock_vmx false
。把前方的 ; 刪去,並將後方的false
改為true
。
在文件頂部找出 timeout 20,改成 4~10。這是開機等待時間。 - 安裝 rEFInd:
打開 Terminal 終端機,執行./refind-install
。正式安裝 rEFind。 - 重啓 MacOS SIP:
再次重新開機,直至進入回復程式。打開 Terminal,輸入csrutil ensable;
。重新開機返回 MacOS。 - 以 Windows 開機:
試幾次進入 Windows,打開工作管理員查看是否啓用了 Virtualization。再執行 WSL.exe 看是否正運作。
缺點
現在的開機畫面變得超醜!暫時將就用,唔想煩。睇文件係可以修改 refind.conf 去調整,它可以用 JPG/PNG做背景。