如何检查macOS上是否启用了虚拟化

时间:2018-03-06 14:29:47

标签: macos virtualization

关于如何在Mac上启用虚拟化已经有几个问题(例如How to enable support of CPU virtualization on Macbook Pro?)。通常会报告sysctl -a | grep 'machdep.cpu.feature.*VMX'应该匹配,但需要注意:匹配意味着cpu支持虚拟化,而不是启用虚拟化。

有没有办法检查虚拟 是否已启用?我准备编译并运行一个小程序,如果它能够回答它,但我不愿意。

1 个答案:

答案 0 :(得分:2)

有三件事情基本上告诉您是否在计算机上支持和启用了Intel VMX。这不是特定于操作系统,而是特定于英特尔主板。

  1. CPUID.1 will tell you in ecx.BIT[5] == 1 if CPU supports vmx.
  2. IA32_FEATURE_CONTROL MSR BIT.2 == 1会告诉您VMX是否在正常模式下启用。如果此MSR中BIT.2为0且BIT.0为1,则表示VMX已禁用并在BIOS中锁定。您需要重新启动并在BIOS中启用它。
  3. Control Register CR4.BIT.13[VMXE] == 1会告诉您现在计算机上已启用VMX。如果GPF位被清除,CPU将CR4.VMXE,并且您尝试执行VMXON指令以进入VMX根模式。
  4. 您可以编写一个小程序来执行此操作并检查您缺少的内容。