xml配置
xml配置
波奇大帝<pmu state="off"/>
是 libvirt / QEMU 虚拟机 XML 配置文件中的一项,用于控制**虚拟 CPU 是否启用 PMU(Performance Monitoring Unit,性能监控单元)**。
🔧 作用解释:
1 | <pmu state="off"/> |
这行的意思是:关闭虚拟 CPU 的 PMU 功能,即:
- 虚拟机内部看不到 PMU(例如
perf
、rdpmc
、PMC
相关寄存器等不可用); - 禁止应用或反作弊检测通过性能计数器探测“是否为虚拟机”;
- 某些软件通过检查 PMU 行为(如
rdpmc
支持或 MSR 读取)来判断是否运行在真实硬件上,关闭后可规避。
✅ 常见用途:
场景 | 描述 |
---|---|
🕵️ 反虚拟机检测 | 某些反作弊/反调试程序会检查 PMU 状态以识别虚拟机;关闭可绕过检查 |
🛡️ 安全需求 | 屏蔽 VM 中访问 PMU,可以减少攻击面(如 Spectre/PMC 泄露) |
🧪 特定性能测试 | 某些测试可能要求禁用 PMU 以排除干扰 |
🧩 QEMU bug 规避 | 某些旧 QEMU 或 KVM 版本在启用 PMU 时会导致异常(特别是在 AMD 上) |
🔍 默认行为:
- 默认值为
<pmu state="on"/>
,即 启用 PMU; - 如果不写该标签,相当于
on
; - 显式写
off
可以禁用并提升一定的虚拟机“隐身性”。
💡 建议:
情况 | 建议设置 |
---|---|
想尽量隐藏虚拟机特征(如过反作弊) | state="off" ✅ |
需要使用perf /rdpmc / PMU 工具 |
state="on" 或不写 |
不确定或通用场景 | 默认即可(不写) |
<msrs unknown="fault"/>
是 libvirt 虚拟机 XML 配置中的一个重要设置,作用是:
✅ 含义解释:
1 | <features> |
表示:
当虚拟机中的系统或程序访问了 QEMU/KVM 不支持或未知的 MSR(Model-Specific Register)寄存器 时,**抛出 GP 异常(General Protection Fault)**,而不是静默忽略。
🧠 背景知识:MSR 是什么?
MSR(Model-Specific Register)是 CPU 的特权寄存器,用于控制高级功能,如:
- 性能监控(PMC)
- TurboBoost 控制
- 温度传感器
- 电源管理
- 虚拟化标识(如
MSR_IA32_FEATURE_CONTROL
,MSR_HYPERV_*
)
🔍 默认行为(等价于 unknown="ignore"
):
默认情况下,QEMU/KVM 会忽略虚拟机访问未知或未实现的 MSR,直接返回 0 或静默跳过,这对某些程序(尤其是反作弊/反虚拟机检测)来说:
❗ 是“特征” —— 因为真实物理机上读取不存在的 MSR 是会抛异常的。
🔒 使用 unknown="fault"
的目的:
目的 | 效果 |
---|---|
✅提升虚拟机拟真度 | 更像真实物理机,访问非法 MSR 会触发异常(而不是返回 0) |
✅对抗反虚拟机检测 | 一些反作弊程序通过读取非法 MSR 检测虚拟机,设置后可以规避 |
⚠️安全或调试要求 | 有助于你排查虚拟机中访问了哪些不该访问的 MSR |
⚠️可能引发兼容性问题 | 某些驱动或系统组件访问非法 MSR 时会直接崩溃(例如旧驱动或不标准软件) |
🧪 示例:检测 MSR 存在的方式
反检测程序常见伪代码:
1 | try { |
加上 unknown="fault"
后,虚拟机也抛异常,绕过这种检测。
✅ 推荐使用场景:
场景 | 是否推荐 |
---|---|
🕵️ 绕过反虚拟机 / 反作弊 | ✅ 推荐 |
🛠️ 调试、开发高仿真环境 | ✅ 推荐 |
🧩 普通用途 / 旧系统 | ❌ 不推荐,可能引发兼容问题 |
📌 总结:
属性 | 意义 |
---|---|
`` | 默认,忽略未知 MSR,可能被检测 |
`` | 抛出异常,更接近物理机行为,适合伪装 |
raw 扩容
sudo qemu-img resize -f raw vol.img +100G
qcow2扩容
qemu-img resize yourdisk.qcow2 +100G
CPU部分
CCD0
1 | <cputune> |
CCD1
1 | <cputune> |