我最近在 VirtualBox 中遇到了一个问题。它最近开始给我错误,例如:VT-x 不可用(VERR_VMX_NO_VMX)。在我的另一台虚拟机上,它显示:原始模式因 Hyper-V 而不可用。(VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT)。
但问题是,我完全禁用了 Hyper-V。我不得不在 CMD 中强制禁用它,因为以“打开或关闭 Windows 功能”的方式执行此操作无法工作,Windows 会在重新启动后说“无法完成我的更改”。所以我改用 CMD 命令来禁用 Hyper-V。此后,我的虚拟机运行良好,直到最近我开始收到这些错误。
我不知道是什么引发了它,我甚至运行了一个 powershell 脚本来检查,它显示我用来禁用 hyper-v 的 CMD 命令有效。所以我不确定为什么我会收到与 hyper-v 相关的错误,尽管我也禁用了它!我甚至检查了 BIOS 中是否启用了虚拟化,我也启用了它!如果有人有任何建议,因为到目前为止我还没有找到一个,这与禁用 Hyper-v 无关,因为我已经这样做了。
答案1
可能是设备/凭证保护器:
要禁用 Device Guard 或 Credential Guard:
禁用用于启用 Credential Guard 的组策略设置。在主机操作系统上,单击“开始”>“运行”,键入 gpedit.msc,然后单击“确定”。本地组策略编辑器将打开。
转到本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 设备防护 > 打开基于虚拟化的安全性。选择已禁用。
转到控制面板 > 卸载程序 > 打开或关闭 Windows 功能以关闭 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
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。
答案2
按照https://techcommunity.microsoft.com/t5/Windows-Insider-Program/Windows-Defender-System-Guard-Making-a-leap-forward-in-platform/td-p/167303您可以在 Windows 设置->更新和安全->Windows 安全->设备安全->核心隔离详细信息->内存完整性中关闭核心隔离:关闭
如果系统上该选项显示为灰色,您还可以更改注册表项:HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity\Enabled
将其关闭并重新启动计算机,它应该可以再次工作