Virtual Box 加载虚拟机失败 E_FAIL (0x80004005)

Virtual Box 加载虚拟机失败 E_FAIL (0x80004005)

我在 Windows 7 Service pack 1 上的 VirtualBox 4.3.18 上安装了 Xubuntu VM,并进行了一些更新。
错误消息是:

Result Code: 
E_FAIL (0x80004005)
Component: 
Machine
Interface: 
IMachine {480cf695-2d8d-4256-9c7c-cce4184fa048}

详细日志如下:

...

1550.12bc: supR3HardNtViCallWinVerifyTrustCatFile: CryptCATAdminEnumCatalogFromHash failed ERRROR_NOT_FOUND (1168)
1550.12bc: supR3HardNtViCallWinVerifyTrustCatFile -> -22900 (org 22900)
1550.12bc: supHardenedWinVerifyImageByHandle: -> -22900 (\Device\HarddiskVolume2\Windows\System32\shell32.dll)WinVerifyTrust
1550.12bc: Error (rc=0):
1550.12bc: supR3HardenedScreenImage/Imports: rc=Unknown Status -22900 (0xffffa68c) fImage=1 fProtect=0x0 fAccess=0x0 \Device\HarddiskVolume2\Windows\System32\shell32.dll: Not signed.
1550.12bc: supR3HardenedWinVerifyCacheInsert: \Device\HarddiskVolume2\Windows\System32\shell32.dll
1550.12bc: supR3HardenedWinVerifyCacheProcessImportTodos: Processing 'advapi32.dll'...
1550.12bc: supR3HardenedWinVerifyCacheProcessImportTodos: 'advapi32.dll' -> '\Device\HarddiskVolume2\Windows\System32\advapi32.dll' [rcNtRedir=0xc0150008]
...
1550.12bc: supR3HardenedWinVerifyCacheProcessImportTodos: Processing 'shell32.dll'...
1550.12bc: supR3HardenedWinVerifyCacheProcessImportTodos: 'shell32.dll' -> '\Device\HarddiskVolume2\Windows\System32\shell32.dll' [rcNtRedir=0xc0150008]
1550.12bc: supR3HardenedScreenImage/Imports: cache hit (Unknown Status -22900 (0xffffa68c)) on \Device\HarddiskVolume2\Windows\System32\shell32.dll
1550.12bc: Error (rc=0):
1550.12bc: supR3HardenedScreenImage/Imports: cached rc=Unknown Status -22900 (0xffffa68c) fImage=1 fProtect=0x0 fAccess=0x0 cErrorHits=1 \Device\HarddiskVolume2\Windows\System32\shell32.dll

答案1

我知道您很久以前就问过这个问题,而且您的问题可能不再存在,但我到处搜索并在搜索结果中发现了您的帖子......所以我会回答它,只是为了帮助其他正在遭受同样痛苦的人......

我认为故事是这样的......

VirtualBox 在某个版本之后开始严格遵循其所安装的操作系统。在 Windows 上,它会验证您的文件是否被修改,例如 system32.dll、shell32.dll 等文件……这些文件是使用自定义主题和 CustoPack Tools 等软件时修改的文件。这是我的情况。因此,您的日志中的条目显示:

supR3HardenedWinVerifyCacheProcessImportTodos: 'shell32.dll' -> '\Device\HarddiskVolume2\Windows\System32\shell32.dll' [rcNtRedir=0xc0150008]

正在验证您的 shell32.dll 是否经过修改。如果失败,无论出于何种原因,它都不会启动您的虚拟机。我不知道他们为什么开始这样做,但不这样做的最新版本是 4.3.12。您可以下载该特定版本(或更早版本)并运行您的虚拟机或尝试修复您的系统文件。您应该卸载并修复所有系统文件,然后它才能再次工作(例如使用 SFC -如果你不知道它是什么,请谷歌搜索 SFC /scannow)。

对我来说,这种行为是 S 中的一个痛苦...希望 Oracle 在开始进行这种严格检查时有一个充分的理由...

相关内容