記一次 Vagrant 排坑經歷:error: Raw-mode is unavailable courtesy of Hyper-V

吃魚不吐刺發表於2019-06-05

前言:為了嚐鮮Windows 1903(五月更新),得付出代價啊。。。

當執行vagrant up時,看著bash終端上執行到
==> homestead-7: Running 'pre-boot' VM customizations... ==> homestead-7: Booting VM...
然後直接丟擲如下異常提示:

...
...
There was an error while executing `VBoxManage`, a CLI used by Vagrant for controlling VirtualBox. The command and stderr is shown below.  Command: ["startvm", "da766e1e-a423-4f4d-a37e-8523e39b294f", "--type", "headless"]  Stderr: VBoxManage.exe: error: Raw-mode is unavailable courtesy of Hyper-V. (VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT) VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole

重點是error: Raw-mode is unavailable courtesy of Hyper-V這句話,其餘的可以忽略

排坑開始:

  • 系統平臺:Windows 10 1903(千萬千萬不要手賤,能不升級就不升級!!!)
  • VirtualBox 6.0.8 r130520(如果低於此版的,務必升級到此版本!)

必須保證以下兩點大前提:
       ①在使用VirtualBox時不能開啟Hyper-V,這一點和docker不同,docker必須要啟用它。
       ②保證開啟了虛擬化VT-X
檢視Hyper-V是否 關閉
控制皮膚→程式→程式和功能→啟用或關閉Windows功能 不勾選 即為關閉,'確定'後需要重啟計算機才會生效

記一次Vagrant拍坑經歷

檢視虛擬化VT-X是否 開啟
工作管理員→效能→CPU

記一次Vagrant拍坑經歷

如果不放心,還可以去BIOS中檢視具體的設定項Virtualization需要為Enable

  • 以為這樣就成功了?
    如果不出意外,在按照上面的方法檢查後,輸入vagrant up依然無效,報同樣的錯誤!!!
  • 要想成功解決問題,還是得靠搜尋啊。這種問題,靠國內的百度是沒救了(P.S.搜了一大圈都是在浪費時間,沒一個是管用的!),推薦Bing國際版(暫時可以替代下Google)

    以管理員的方式啟動CMD,輸入bcdedit回車,結果如下圖顯示:

    記一次Vagrant拍坑經歷

    注意我標記的地方,hypervisorlaunchtype這裡必須保證是Off,透過上面①②步的檢查,按道理來說是沒任何問題的,但實際上問題就是出在這裡,不是很明白為什麼這裡的設定會對其有影響。
    執行上面的命令後一般這裡的預設的值為Auto,因而就導致前面你無論怎麼設定,執行vagrant up時都是會報錯的(不知道是不是1903版本造成的)。按照如下指令修改:
    禁用掉Hyper-V: bcdedit /set hypervisorlaunchtype off然後重啟電腦,再執行vagrant up就成功了

    開啟Hyper-V:bcdedit /set hypervisorlaunchtype auto需要重啟電腦生效


    附上鍊接:
    https://discuss.erpnext.com/t/virtualbox-wont-run-raw-mode-unavailable-courtesy-of-hyper-v/34541/10
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章