如果没有内核模块错误,无法在VirtualBox中启动Windows guest虚拟机

问题描述 投票:44回答:4

我在Windows 7上运行Vagrant(1.8.1)+ VirtualBox(5.0.12)并尝试启动Windows 7映像(modernIE / w7-ie8)。但是,我收到此错误:

---------------------------
VirtualBox - Error In supR3HardenedWinReSpawn
---------------------------
<html><b>NtCreateFile(\Device\VBoxDrvStub) failed: 0xc0000034 STATUS_OBJECT_NAME_NOT_FOUND (0 retries) (rc=-101)</b><br/><br/>Make sure the kernel module has been loaded successfully.<br><br><!--EOM-->where: supR3HardenedWinReSpawn
what:  3
VERR_OPEN_FAILED (-101) - File/Device open failed.

Driver is probably stuck stopping/starting. Try 'sc.exe query vboxdrv' to get more information about its state. Rebooting may actually help.</html>
---------------------------
OK
---------------------------

我运行了查询命令,但服务“找不到”。

> sc.exe query vboxdrv
[SC] EnumQueryServicesStatus:OpenService FAILED 1060:

The specified service does not exist as an installed service.

我也试过重启。没有。

windows service kernel virtualbox
4个回答
151
投票

我在Windows 10上,以下步骤适合我:

脚步:

  1. 导航到“C:\ Program Files \ Oracle \ VirtualBox \ drivers \ vboxdrv”
  2. 右键单击“VBoxDrv.inf”文件并选择“安装”选项
  3. 以管理员身份打开控制台并运行以下命令 sc start vboxdrv

33
投票

VirtualBox的安装有问题(我早在4.x时就已经看到了这个问题的报告)。安装程序为驱动程序SYS文件注册了错误的位置(本例中为ImagePath)。

PS> Get-ItemProperty HKLM:\system\currentcontrolset\services\vboxdrv


Type         : 1
Start        : 3
ErrorControl : 1
ImagePath    : \??\C:\Program Files\Oracle\VirtualBox\VBoxDrv.sys
DisplayName  : VBox Support Driver
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\system\currentcontrolset\services\vboxdrv
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\system\currentcontrolset\services
PSChildName  : vboxdrv
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry

该文件不存在。

PS> Test-Path (Get-ItemProperty HKLM:\system\currentcontrolset\services\vboxdrv).ImagePath
False

实际位置需要额外的drivers\vboxdrv

PS> Test-Path 'C:\Program Files\Oracle\VirtualBox\drivers\vboxdrv\VBoxDrv.sys'
True

您可以更新注册的位置。

PS> Set-ItemProperty HKLM:\system\currentcontrolset\services\vboxdrv -Name ImagePath -Value '\??\C:\Program Files\Oracle\VirtualBox\drivers\vboxdrv\VBoxDrv.sys'

现在你可以启动驱动程序/服务了。

> sc.exe start vboxdrv

4
投票

请尝试以下代码(以管理员身份):

 sc.exe start vboxdrv

0
投票

我做了Anthony Mastrean的建议,但我仍然遇到了一些错误:

C:\Vagrant>sc query vboxdrv

SERVICE_NAME: vboxdrv
        TYPE               : 1  KERNEL_DRIVER
        STATE              : 1  STOPPED
        WIN32_EXIT_CODE    : 31  (0x1f)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

C:\Vagrant>sc start vboxdrv
[SC] StartService FAILED 123:

The filename, directory name, or volume label syntax is incorrect.

超级用户的This thread给了我解决方案:

找到C:\ Program Files \ Oracle \ VirtualBox \ drivers \ vboxdrv \ VBoxDrv.inf右键单击并选择Install

© www.soinside.com 2019 - 2024. All rights reserved.