让虚拟机支持VT
想要在虚拟机中使用VT(嵌套使用VT),需要在虚拟机管理工具(Vmware/VirtualBox)中设置。
不管是Vmware还是VirtualBox都默认是关闭了虚拟机的VT功能, VMware 和 VirtualBox 设置方式如下。
VMware
在虚拟机设置中勾选图中所示即可。
VirtualBox
VirtualBox中要让虚拟机开启VT稍微比较麻烦,在界面中改功能是置灰状态,无法勾选,需要通过命令行设置。
设置方法
- 在cmd中定位到VirtualBox根目录 : cd C:\Program Files\Oracle\VirtualBox
- 打印出所有的虚拟机 : VBoxManage.exe list vms
- 开启虚拟机的VT: VBoxManage.exe modifyvm "Windows7_x64" --nested-hw-virt on
注意"Windows7_x64"是我的虚拟机名称, 你需要把这个设置为你希望修改的虚拟机名称
设置完毕后,重新打开虚拟机设置,可以发现CheckBox已经是可勾选状态,并且已经勾选上了。
实验
VT是否开启到底影响了什么? 没有开启VT CPUID.1:ECX.VMX[bit 5]会设置为0,开启后会置为1。
VMX(Virtual Machine Extensions) 为1时表示处理器支持VT;为0时表示不支持VT。 虚拟机软件都会检查这个标志.。
下面是通过cpuid指令 分别在未开启VT和已开启VT的状态得出的ECX值
result Ecx : DE9A220B
result Ecx : DE9A222B
可以看到bit5位(VMX位)是 不一样的.