要检查计算机BIOS/UEFI中是否启用了Intel的VT-X或AMD的AMD-V,我使用以下命令:
if systool -m kvm_amd -v &> /dev/null || systool -m kvm_intel -v &> /dev/null ; then
echo "AMD-V / VT-X is enabled in the BIOS/UEFI."
else
echo "AMD-V / VT-X is not enabled in the BIOS/UEFI"
fi
我找不到检查Intel VT-D或AMD IOMMU是否在BIOS/UEFI中启用的方法。
我需要一种无需设置iommu内核参数(iommu=1
, amd_iommu=on
, intel_iommu=on
)来检测它是否启用的方法。
我有一个想法是使用rdmsr
,但我不确定它是否可行。最初我想使用systool
,但后来改为使用sudo rdmsr 0x3A
,但对我没有用。它总是报告:
rdmsr: CPU 0 cannot read MSR 0x0000003a
rdmsr
是msr-tools
的一部分。需要先加载msr
内核模块(sudo modprobe msr
)才能使用。
据称sudo rdmsr 0x3A
应该返回3
或5
来表示VT-X / AMD-V已启用...
dmesg | grep AMD-Vi
。 - Michael HamptonVT-d
和VT-d中断重映射
。这似乎表明您也可以启用VT-d但禁用IRQ重映射。我也不确定VT-d支持对IOMMU支持意味着什么 - 例如,我有一个系统,在那里我看到DMAR-IR:在xapic模式下启用IRQ重映射
行,但/sys/kernel/iommu_groups/
为空。 - maxschlepzigintel_iommu=on
插入到您的Grub CMDLINE中。 - John Greene