虚拟机原始模式在Hyper-V Windows 10中不可用


116

问题:

Failed to open a session for the virtual machine ubuntu.

Raw-mode is unavailable courtesy of Hyper-V. (VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT).

Result Code: E_FAIL (0x80004005)
Component: ConsoleWrap
Interface: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

更新:解决方案如下。


1
我赢了10,并且拥有Intel Core i7。它为我工作。我不知道为什么,但是如果您对任何特定设置感兴趣,我可以帮您看看。到目前为止,我只能看到一个区别-我在“ Windows功能”中启用了“容器”。我不认为这是原因。当我遇到这个问题时,我所要做的只是去控制面板\程序\程序和功能\并禁用复选框,这很有帮助。我从来没有在CLI中运行命令。可能是原因吗?
Yevgeniy Afanasyev '18

我赞成你的问题,因为我认为这很重要。但是设置不好,我的意思是你在一个帖子中问了几个问题,这很令人困惑。让我在这里用评论回答您的问题(4):VM框当您的Hyper-V处于活动状态或在BIOS中禁用了虚拟化功能时,加速被停用。
Yevgeniy Afanasyev '18

我正在为Hyper-V问题苦苦挣扎。问题是我无法更改处理器和加速设置,并且无法运行虚拟操作系统。我尝试删除旧的虚拟机并创建了一个新的虚拟机。但是没有任何效果。我系统中Windows功能下的Hyper-V设置未列出。BIOS中的虚拟化已启用。解决方案:在Windows Defender安全中心下关闭“核心隔离”。
维卡斯·库玛

我遇到了同样的问题,并且按照您的步骤进行操作。当我到达最后一步时,VM框加速处于活动状态,并且所有项目均已选中。现在,虚拟机启动,错误不会显示。谢谢:)
居纳伊居尔泰金

禁用容器和Hyper-V对我有用。
greg

Answers:


180

您需要禁用虚拟机监控程序才能在虚拟机启动之前检查使用VT-x的新应用程序。

因此,请按照以下步骤操作:

1)以管理员身份打开命令提示符

2)运行bcdedit检查虚拟机监控程序状态:

bcdedit

3)检查管理程序启动类型:

enter image description here

4)如果设置为自动,则将其禁用:

bcdedit /set hypervisorlaunchtype off

5) 5eboot主机并再次启动VirtualBox

6)享受...

我希望这有帮助。


12
禁用它,但这无济于事
Stepan Yakovenko '18

2
这为我做到了(Windows 10家庭版)。非常感谢。
clo5ure

从某种意义上说,这可以解决VirtualBox问题,但现在Android Studio无法启动模拟器,这就是为什么我必须首先启用Hyper-V的原因。我有一个Ryzen 7 CPU,Windows 10 18936(Insider Preview)。
紫罗兰色长颈鹿

当我将VM从VMware转换为VB时,对我有用。谢谢!
Maxiller

这个解决方案对我有用,我同时启用了hyper-v和sandbox,同时禁用了这两个功能。
里卡多·皮门特尔

32

禁用为我修复的Device Guard或Credential Guard:

  • 单击开始>运行,键入gpedit.msc,然后单击确定。将Local Group Policy Editor打开。转到Local Computer Policy> Computer Configuration> Administrative Templates> System> Device Guard> Turn on Virtualization Based Security。选择禁用。
  • 转到Control Panel> Uninstall a Program> Turn Windows features on or off关闭Hyper-V

选择。不要重启。

通过使用管理员帐户在主机上启动命令提示符来删除相关的EFI变量,然后运行以下命令:

mountvol X: /s
copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y
bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "\EFI\Microsoft\Boot\SecConfig.efi"
bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215}
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO,DISABLE-VBS 
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X:
mountvol X: /d

注意:确保X是未使用的驱动器,否则请更改为另一个驱动器。

重新启动主机。接受引导屏幕上的提示以禁用Device Guard或Credential Guard。

资料来源:https : //kb.vmware.com/s/article/2146361


1
对我来说,运行所有这些命令来更改EFI变量是一个缺少的步骤。现在虚拟化可以工作了。
Mykhaylo Kopytonenko

禁用组策略+卸载Hyper V对我有用。我不必做与EFI相关的变量。
阿喀琉斯

如果安全启动处于活动状态,则仅此解决方案适用于我。否则(如果我不删除EFI变量)....操作系统将无法启动。因此,请谨慎使用现代Windows 10计算机上的第一个解决方案!
Filip Overtone歌手Rydlo,

20
  1. 禁用Hyper-V(控制面板\程序\程序和功能\ Hyper-V)

    在此处输入图片说明

  2. 修改BCD(bcdedit / set hypervisorlaunchtype off)

    在此处输入图片说明

  3. 如果启用了核心隔离,则将其关闭(Windows Defender安全中心>设备安全>核心隔离)

    在此处输入图片说明

如果无法修改它,则可以将注册表中的HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ DeviceGuard \ Scenarios \ HypervisorEnforcedCode Integrity \ Enabled的值更改为0

在此处输入图片说明


1
该注册表项不至少存在对我来说,即使是在HKLM/SYSTEM/CurrentControlSet/Control/DeviceGuard
尤哈Untinen

2
消除核心隔离是最终为我解决问题的技巧。我尝试了主要建议,例如bcdedit和卸载hyper-v。
贾斯汀

尽管屏幕快照位于其他区域,这对我还是有用的。
leeand00

这可行,但是步骤1对我来说不是必需的,因为根本没有Hyper-V项目。

取消选中Hyper V和容器对我有用。感谢您的解决方案
Tarun Reddy

13

1)在Powershell中以管理员模式运行以下命令:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

2)在命令提示符下以管理员模式运行以下命令:

bcdedit /set hypervisorlaunchtype off 

在此处输入图片说明

3)禁用Hyper-V:控制面板\程序\程序和功能\ 在此处输入图片说明

4)VMBox内存达到:3155 MB(VMbox-> settings-> system)

VM框加速已禁用。如何激活它?并修复上述错误? 在此处输入图片说明

重新启动系统。


5
这很可能是由安装Docker引起的
Danon

1
是的,肯定是Docker为我造成了这个问题。我的问题是,我想同时运行两者。
Picl

11

最后,我现在可以解决此问题。

首先,我们需要确定或理解大多数人没有真正发现的问题,我的VM带有64位Ubuntu的客户机操作系统,但是导入后,我们检查该VM仅显示32位OS。

当启动虚拟机时,出现以下错误:

Failed to open a session for the virtual machine ERPNext-Develop-20180331192506.

Raw-mode is unavailable courtesy of Hyper-V. (VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT).

Result Code: E_FAIL (0x80004005)
Component: ConsoleWrap
Interface: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

我确实尝试了上述解决方案,但实际上无法正常工作,否则我可能会错过一些东西。

然后,我注意到上面的要点(32位操作系统),所以我认为问题可能出在这一点上。

在Internet上有一些帖子,它可以解释Windows 10也带有Hyper-V,它与Oracle VM VirtualBox冲突。

所以我解决了...

1.在组策略中禁用基于虚拟化的安全性

  • 启动运行应用程序并启动:gpedit.msc
  • 转到计算机配置>管理模板> Device Guard

在此处输入图片说明

  1. 禁用Microsoft Hyper-V

    • 启动运行应用程序并启动:OptionalFeatures.exe
    • 取消勾选:Hyper-V
    • 重新启动电脑

在此处输入图片说明

然后,我们可以使用VM,它已启动。在上述两个步骤中,我认为步骤2确实可以解决。

无论如何,请尝试一下,让我们知道是否有帮助。


10

当我收到错误信息“ Hyper-V无法提供原始模式 ”时,我想学习如何将vagrantvirtualbox一起使用。为了解决此问题,我想我做了上面建议的所有更改(谢谢大家),还有其他一些建议。

让我总结一下:

CMD: optionalfeatures
关闭“Hyper-V的”
关闭“集装箱”
关闭“的Windows子系统为Linux”

关闭“ Hyper-V”和“容器” 关闭“ Linux的Windows子系统”

命令: bcdedit /set hypervisorlaunchtype off

关闭bcdedit hypervisorlaunchtype

cmd: gpedit.msc
本地计算机策略- >计算机配置- >管理模板- >系统- >设备后卫- >
禁用“打开基于虚拟化安全”

禁用基于虚拟化的安全性

设置->更新和安全-> Windows安全->设备安全->核心隔离详细信息->内存完整性->关

在此处输入图片说明


9

要在Windows 10中检查Hyper-v的状态,

右键单击<“开始”→→运行→OptionalFeatures.exe,→查找“ Hyper-V”选项。

该框应为空,不要选中或加阴影。

更改Hyper-v设置后,请确保完全关闭电源并重新引导主机。

聚苯乙烯

Docker以激活该“ Hyper-V”而无需征求用户意见而闻名,然后Oracle VirtualBox不想工作。


2
我在上面给出了Hyper-V的屏幕截图。它清楚地表明Hyper-V已禁用。并重新启动了很多次。
AKB

我了解,此答案没有帮助您,但可能会帮助其他人。让我们保留它,好吗?
Yevgeniy Afanasyev '18

5

您需要禁用Windows Hyper-V功能和bcd。然后Virtual Box将在最新的Windows 10版本中运行(2018年1月3日)。Windows 10 Hyper-V在VirtualBox功能方面存在冲突。

我已经按照以下步骤解决了这个问题:

  1. bcdedit /set hypervisorlaunchtype off
  2. Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
  3. 重新启动视窗

有关此问题的详细讨论,请访问-https: //forums.virtualbox.org/viewtopic.php?f=6&t=87237

另外,您也可以通过最新的bash命令在Windows 10中安装linux(Ubuntu)-https: //www.windowscentral.com/how-install-bash-shell-command-line-windows-10


更改了我机器上的此设置(将2的信息放入具有管理员权限的powershell中),但是,重新启动后,完全没有效果,还有其他可能性吗?
迈克(Mike)

概念是不能有2个虚拟盒子并行运行。您必须禁用Windows 10 Hyper V,然后才能安装和运行另一个Virtual Box。或者,您可以以bash模式直接在Windows 10上安装ubuntu。
Riddhi Sanyal,

如果运行在cmd而非powershell -Command "Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All"
Powershell中

3

您必须禁用内存完整性。

转到设备安全,然后隔离核心,禁用内存完整性,然后重新启动。

似乎Memory Integrity可虚拟化某些进程(在本例中为VMware),而我们得到了该错误。


如果控制面板说“这是由管理员管理的”,则也可以从注册表编辑器禁用“内存完整性”。

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity

双击Enabled并将其值从1更改0为禁用它。


有用的资料来源:https : //forums.virtualbox.org/viewtopic.php? t = 86977#p420584


在我的机器上更改了此设置,但是在重新启动后,没有任何其他效果吗?
迈克(Mike)

@Mike这个问题有很多不同的答案,所以我猜这是一个新问题。您必须考虑与Hyper-V相关的东西在您的计算机中可能会发挥作用,然后诊断该部分。
Shafiq al-Shaar '18

3

对我来说,以下三个组合是解决方案:

1. 控制面板 >打开或关闭Windows功能> Hyper-V:取消选择

2. admin cmd > bcdedit> hypervisorlaunchtype:自动禁用:bcdedit / set hypervisorlaunchtype off

3. gpedit.msc >' 计算机配置>管理模板> Device Guard ”>“打开基于虚拟化的安全性”:从“未配置”更改为“禁用”

重启


注意:重启后,VirtualBox可以正常工作,但是Docker Desktop的VirtualBox开始抱怨缺少Hyper-V!

看来这可能是我所有邪恶的根源...额外信息:https : //forums.docker.com/t/running-docker-and-virtualbox-on-the-same-machine/23578/13


1

在2018年7月更新Windows 10之后,我突然遇到了这个问题,Virtual Box丢失了64位OS选项,从而导致错误。

虚拟机原始模式在Hyper-V Windows 10中不可用

尽管HYPER-V已禁用 / 未安装,但由于事件导致现有Laravel Homestead Boxs无法启动...

FIX!(对我有用)鼓卷。

安装Hyper-V ...重新启动,再次卸载...重新启动...结束


1

docs中一样,如果您在Windows上,则可以使用hyperv驱动程序。

适用于Windows的Docker-您可以将docker-machinecreate与hyperv 驱动程序一起使用来创建其他本地计算机。




0

Mi帮助:Windows Defender设置>>设备安全>>核心绝缘(详细信息)>>内存完整性>>禁用(关闭)系统重启!


0

Mi帮助:Windows Defender设置>>设备安全>>核心绝缘(详细信息)>>内存完整性>>禁用(关闭)系统重启!这个解决方案对我来说更好


0

这将是最简单的方法。

1)在此处下载Device Guard和Credential Guard硬件准备工具- ://www.microsoft.com/zh-cn/download/details.aspx? =

2)找到下载内容的“ DG_Readiness_Tool_v3.5.ps1”的文件夹路径,并在启用Powershell“ unrestricted”后运行以下命令。“。/DG_Readiness_Tool_v3.5.ps1-禁用-自动重新启动”

3)重新启动机器时,按F3确认以禁用功能


0

就我而言,问题出在我尝试使用ubuntu / xenial64的特定盒子上,我只需要切换到centos / 7,所有这些错误就消失了。

希望这对某人有帮助。


-1

我有完全相同的问题,并且做过与您相同的事情,但没有成功。

我在的日志中找到了一个条目

HM: HMR3Init: Falling back to raw-mode: VT-x is not available
VMSetError: F:\tinderbox\win-5.2\src\VBox\VMM\VMMR3\VM.cpp(361) int __cdecl 
VMR3Create(unsigned int,const struct VMM2USERMETHODS *,void (__cdecl *)(struct UVM *,void *,int,const char *,unsigned int,const char *,const char *,char *),void *,int (__cdecl *)(struct UVM *,struct VM *,void *),void *,struct VM **,struct UVM **); rc=VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT
00:00:05.088846 
VMSetError: Raw-mode is unavailable courtesy of Hyper-V. 00:00:05.089946 

ERROR [COM]: aRC=E_FAIL (0x80004005) aIID={872da645-4a9b-1727-bee2-5585105b9eed} aComponent={ConsoleWrap} aText={Raw-mode is unavailable courtesy of Hyper-V. (VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT)}, preserve=false aResultDetail=0 00:00:05.090271 Console: Machine state changed to 'PoweredOff'

我的芯片说它有VT-x,并且在Bios中打开,但日志上没有
HM:HMR3Init:回退到原始模式:VT-x不可用我有一个6个月大的Lenovo Yoga,带有2.7-GHz Intel Core i7-7500U


我已经尝试了以下方法,但是对我来说不起作用。

从此线程 https://forums.virtualbox.org/viewtopic.php?t=77120#p383348我尝试禁用Device Guard,但Windows无法关闭,因此我重新启用了它。

我使用了此路径...。在主机操作系统上,单击“开始”>“运行”,键入gpedit.msc,然后单击“确定”。将打开“本地组策略编辑器”。转到本地计算机策略>计算机配置>管理模板>系统> Device Guard>打开基于虚拟化的安全性。选择禁用。


抱歉,您的答案还不清楚,您是否找到了解决方案,对您有什么帮助?请澄清。谢谢。
Yevgeniy Afanasyev'5

抱歉,我只列出了一些对我不起作用的内容。他们为别人工作。
netchicken

您能否更改答案以更清楚地找到解决方案?如果它不适合您,但请弄清楚步骤,可以的。如果需要,请从另一个解决方案中提取一个解决方案。谢谢。
Yevgeniy Afanasyev '18年

像您一样,我在这篇文章和链接中也做了所有事情,但是仍然遇到与上面发布的错误相同的错误。Windows不知何故没有禁用Hyper-V机械,但是正确设置了所有属性以将其关闭并在重新引导后保持关闭状态。欢迎任何其他输入,您使它同时运行了吗?
迈克(Mike)

答案很混乱。
Alexandre V.19年

-3

我有同样的问题

虚拟机在我的Windows机器上运行顺利,但是当新的更新出现时,虚拟机开始给我这个错误,并相信我伙计们只花了S%$&的东西就解决了它

就我而言,仅通过安装Windows扩展包即可解决此问题


2
嗨,欢迎使用SO @EvilPrince-如果您可以使答案更简洁一点,对您很有用,并说明您安装上述扩展包所需的步骤。
PatrickHübl-Neschkudla19年

1
只需从那里的网站下载Oracle VM Virtual Box扩展包,然后先安装虚拟盒,然后简单地安装扩展包所有平台都支持该扩展包
EvilPrince
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.