我有一台配备 Core Duo(不是 Core 2)的旧笔记本电脑。
CPU 支持 VT-x,但 BIOS 不支持。(并且再也不用更新 BIOS 了)
VT-x 真的需要 BIOS 支持吗?我们可以使用 Linux 内核补丁来实现吗?
答案1
在英特尔软件开发人员手册第 2916 页,您可以看到提供了一个硬件“钩子”,可以允许 BIOS 禁用或启用虚拟化。
VMXON 也受 IA32_FEATURE_CONTROL MSR(MSR 地址 3AH)控制。当逻辑处理器重置时,此 MSR 被清除为零。... 位 0 是锁定位。如果清除此位,VMXON 会导致一般保护异常。如果设置了锁定位,则对此 MSR 的 WRMSR 会导致一般保护异常;在加电重置条件之前,无法修改 MSR。系统 BIOS 可以使用此位为 BIOS 提供设置选项以禁用对 VMX 的支持。要在平台中启用 VMX 支持,BIOS 必须设置位 1、位 2 或两者(见下文)以及锁定位。
如果 BIOS 已清除硬件模型特定寄存器 (MSR) 0x3A 中的位 0,则虚拟化将被禁用,并且除非重置 CPU(然后将控制权交给 BIOS),否则无法重新启用。
Linux 内核补丁无法撤消此操作,因为这是硬件操作。必须刷新 BIOS 才能跳过设置此位。