如何使用 CPUID 检查虚拟机管理程序存在位是否已设置

如何使用 CPUID 检查虚拟机管理程序存在位是否已设置

目前,我在确定在命令行上使用 CPUID 是否将虚拟机管理程序位(31 位)设置为 true 时遇到问题。

我使用以下命令cpuid -1 -r来检索十六进制数据,如下面的屏幕截图所示。

我不确定如何从这个十六进制值列表中准确检索虚拟机管理程序位值。

任何有关解决此问题的帮助将不胜感激。

在此输入图像描述

答案1

我只会使用cpuid默认给出的文本表示:

cpuid -1 | grep 'hypervisor guest status'

如果您确实想使用原始值,则需要过滤 CPUID#1,然后检查它ECX是否大于或等于 0x80000000:

cpuid -1 -r | grep '^   0x00000001.*ecx=0x[89a-f]'

如果产生输出,则该位被设置,否则不设置;您还可以使用grep的退出状态。

相关内容