You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用QEMU/KVM向虚拟机传递Intel-PT功能失败

解决KVM无法传递Intel-PT至虚拟机及pt_mode参数设置失败问题

先确认宿主机硬件与内核配置

  • 验证宿主机硬件确实支持Intel-PT:
    grep -i pt /proc/cpuinfo
    
    输出里必须有intel_pt字段(你说宿主机具备,这步再确认下)。
  • 检查内核是否开启KVM Intel-PT支持:
    grep CONFIG_KVM_INTEL_PT /boot/config-$(uname -r)
    
    结果得是CONFIG_KVM_INTEL_PT=y或者=m,如果是# CONFIG_KVM_INTEL_PT is not set,说明内核没编译这个功能,换带该配置的内核或者重新编译内核才行。

修正模块加载顺序与参数设置

你之前的加载顺序错了,得先加载kvm,再加载带参数的kvm_intel,分开加载会导致参数不生效:

# 卸载现有模块
sudo modprobe -r kvm_intel kvm
# 先加载kvm,再加载带pt_mode=1的kvm_intel
sudo modprobe kvm
sudo modprobe kvm_intel pt_mode=1
# 验证参数是否生效
cat /sys/module/kvm_intel/parameters/pt_mode

如果还是显示0,排查参数被覆盖的情况:

  • 查看/etc/modprobe.d/下的配置文件,比如kvm-intel.conf,如果有options kvm_intel pt_mode=0,改成pt_mode=1,然后重新加载模块。
  • 检查GRUB启动参数:
    sudo nano /etc/default/grub
    
    找到GRUB_CMDLINE_LINUX_DEFAULT,添加kvm_intel.pt_mode=1,然后更新GRUB并重启:
    sudo update-grub
    sudo reboot
    
    重启后再验证参数。

虚拟机启动时开启Intel-PT传递

宿主机pt_mode生效后,启动虚拟机必须明确开启PT传递:

  • 用QEMU命令行启动,加以下参数:
    -cpu host,+intel-pt
    
  • 用virt-manager的话:
    1. 打开虚拟机详情 → CPU
    2. 勾选「复制主机CPU配置」
    3. 在「CPU特性」里添加intel-pt并设为启用
    4. 保存后重启虚拟机

排查其他限制

  • 检查宿主机是否开了Secure Boot,Secure Boot可能阻止模块加载自定义参数,尝试关闭后再测试。
  • 进BIOS确认虚拟化相关开关:VT-x、VT-d、Intel Processor Trace(部分主板叫这个)必须全部开启。

内容的提问来源于stack exchange,提问作者eftekhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 01:41:14