我想要实现的是禁用 VirtualBox 为我的 Linux 客户操作系统模拟的 CPU 的 SSE4.2 指令集以进行调试,即使真正的 CPU 支持 VirtualBox 所基于的 SSE4.2 指令集。我参考了 VirtualBox 手册页,有几个命令可能与这个问题有关:
VBoxManage setextradata "VM name" VBoxInternal/CPUM/SSE4.2 0
上面的命令不起作用。
VBoxManage list hostcpuids
上面的命令可以用来dumps the CPUID parameters for the host CPUs. This can be used for a more fine grained analyis of the host's virtualization capabilities.
输出为:
Host CPUIDs:
Leaf no. EAX EBX ECX EDX
00000000 00000016 756e6547 6c65746e 49656e69
00000001 000906e9 02100800 7ffafbff bfebfbff
00000002 76036301 00f0b6ff 00000000 00c30000
00000003 00000000 00000000 00000000 00000000
00000004 1c004121 01c0003f 0000003f 00000000
00000005 00000040 00000040 00000003 00142120
00000006 000027f7 00000002 00000001 00000000
00000007 00000000 029c6fbf 00000000 00000000
00000008 00000000 00000000 00000000 00000000
00000009 00000000 00000000 00000000 00000000
0000000a 07300804 00000000 00000000 00000603
0000000b 00000001 00000001 00000100 00000004
0000000c 00000000 00000000 00000000 00000000
0000000d 0000001f 00000440 00000440 00000000
0000000e 00000000 00000000 00000000 00000000
0000000f 00000000 00000000 00000000 00000000
00000010 00000000 00000000 00000000 00000000
00000011 00000000 00000000 00000000 00000000
00000012 00000000 00000000 00000000 00000000
00000013 00000000 00000000 00000000 00000000
00000014 00000001 0000000f 00000007 00000000
00000015 00000002 0000011c 00000000 00000000
00000016 00000d48 00000ed8 00000064 00000000
00000017 00000d48 00000ed8 00000064 00000000
80000000 80000008 00000000 00000000 00000000
80000001 00000000 00000000 00000121 2c100800
80000002 65746e49 2952286c 726f4320 4d542865
80000003 35692029 3035372d 50432030 20402055
80000004 30342e33 007a4847 00000000 00000000
80000005 00000000 00000000 00000000 00000000
80000006 00000000 00000000 01006040 00000000
80000007 00000000 00000000 00000000 00000100
80000008 00003027 00000000 00000000 00000000
80000009 00000d48 00000ed8 00000064 00000000
我知道输出可能与CPUID X86 指令密切相关,但我仍然无法弄清楚这些Leaf no. EAX EBX ECX EDX
行的含义。这些行与CPUID
指令的输出有什么关系?我认为只有知道这些行与CPUID
指令输出的关系,才能正确使用以下命令:
VBoxManage modifyvm --cpuid <leaf> <eax> <ebx> <ecx> <edx>
上面的命令是我所知道的唯一可能实现我的目标的方法,那么, 的输出VBoxManage list hostcpuids
、内容后面的内容Leaf no. EAX EBX ECX EDX
和CPUID
指令的输出之间的关系是什么?即使真正的 CPU 支持 VirtualBox 所基于的 SSE4.2 指令集,如何禁用 VirtualBox 为我的 Linux 客户操作系统模拟的 CPU 的 SSE4.2 指令集?会VBoxManage modifyvm --cpuid <leaf> <eax> <ebx> <ecx> <edx>
实现我的目标吗?如果您有任何其他方法可以实现这一目标,请告诉我。