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> |






