记一次 Vagrant 排坑经历:error: Raw-mode is unavailable courtesy of Hyper-V

前言:为了尝鲜 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 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 5

所以只能关闭 Hyper-V ? 那要用 docker 怎么办?

5年前 评论

@overfalse 要么用 Linux,要么就二选一 :see_no_evil:

5年前 评论

上周安装了 docker 这周的 vagrant 就报错了,感谢

5年前 评论

楼主真乃神人啊,我 ensp 的 ar 路由器死活就是起不来,virtual box 手动启动时,总是说 hyper-v 有问题,明明已经卸载了,看了你的文章才解决了这个问题,感谢!!!

4年前 评论