无法在没有内核模块错误的情况下在 VirtualBox 中引导 Windows 来宾

Cannot boot Windows guest in VirtualBox without kernel module error

我是 运行 Vag运行t (1.8.1) + VirtualBox (5.0.12) Windows 7 并尝试启动 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
---------------------------

我运行查询命令,但是服务"is not found".

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

The specified service does not exist as an installed service.

我也试过重启。没有。

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'

现在您可以开始 driver/service。

> sc.exe start vboxdrv

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

 sc.exe start vboxdrv

我在 windows 10,以下步骤适合我:

步骤:

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

    sc start vboxdrv
    

我按照 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 超级用户给了我解决方案:

find C:\Program Files\Oracle\VirtualBox\drivers\vboxdrv\ VBoxDrv.inf right click and select Install