【问题标题】:How to check that virtualization is enabled on a macOS如何检查 macOS 上是否启用了虚拟化
【发布时间】:2018-03-06 14:29:46
【问题描述】:

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

有没有办法检查虚拟化是否启用?我已经准备好编译并运行一个小程序,如果这是能够回答的问题,但我宁愿不这样做。

【问题讨论】:

    标签: macos virtualization


    【解决方案1】:

    有 3 件事基本上可以告诉您 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。如果CR4.VMXE 位被清除并且您尝试执行VMXON 指令进入VMX root 模式,CPU 将GPF

    您可以编写一个小程序来执行此操作并检查您缺少什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 2011-11-12
      相关资源
      最近更新 更多