我有与此处描述相同的设置:
https://stackoverflow.com/questions/17175696/running-vagrant-inside-vmware-vm
现在我经常收到带有 CRITICAL_STRUCTURE_CORRUPTION 错误的 BSOD,我想知道我是否可以摆脱它们。我读到一些观点,认为在这种嵌套虚拟化设置中,系统肯定会不稳定,但另一方面,它确实有效,而且人们似乎正在使用它。
在网上搜索此错误后,我已经升级到最新版本的 VMWare Player(Windows 8.1 上的 6.0.3)和 Virtualbox(VMWare 内的 Ubuntu 14.04.1 上的 4.3.14),并且我将 Vagrant Virtualbox Machine 中的 CPU 数量减少到 1,但错误仍然发生,有时在一小时左右后,并且仅在 VMWare Player 中运行 Vagrant Virtualbox 时发生。
我可以尝试什么来让它顺利运行?
答案1
根据VMWare 的网站答案如下:
此问题已在 vSphere 5.0 Update 3 中解决。
要临时解决此问题,请为受影响的虚拟机手动创建 CPUID 掩码:
要为受影响的虚拟机手动创建 CPUID 掩码,请执行以下操作:
- 关闭虚拟机电源。
- 右键单击虚拟机,然后单击编辑设置。
- 单击选项选项卡。选择高级下的 CPUID 掩码。
- 单击“高级”。
对于英特尔:
在寄存器列下,找到级别 80000001 下的 edx 寄存器。将其粘贴到值字段中:
----:0---:----:----:----:----:----:----
例如,cpuid.80000001.edx = ----:0---:----:----:----:----:----:----
对于 AMD:
- 选择“AMD Override”选项卡。
- 改变cpuid.80000001.edx.amd = -----------H--------------------
到 cpuid.80000001.edx.amd = ----0-----------------------
单击“确定”关闭虚拟机属性。
答案2
我现在找到了一个解决方法。将 CPU 减少到一个会使蓝屏消失。虽然这不是完美的解决方案,但它有效,并且 Ubuntu + Vagrant 在 VM 中仍然运行得足够快。