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

如何识别代码是否运行在QEMU模拟器中?(自定义OS无第三方工具)

无依赖检测是否运行在QEMU模拟器的方法

以下是无需第三方工具、仅用系统自带命令的可靠检测方式,适配自定义OS环境:

  • 检查CPU标识
    直接读取/proc/cpuinfo,QEMU模拟的CPU通常会包含特征关键词:

    grep -i 'qemu\|kvm' /proc/cpuinfo
    

    输出中若出现QEMU Virtual CPU或kvm字样,大概率处于QEMU/KVM环境。

  • 读取DMI硬件标识(sysfs方式)
    无需dmidecode,直接访问sysfs下的DMI节点:

    # 查看系统厂商
    cat /sys/devices/virtual/dmi/id/sys_vendor
    # 查看产品名称
    cat /sys/devices/virtual/dmi/id/product_name
    

    QEMU环境下,厂商通常显示QEMU,产品名称多为Standard PC (Q35 + ICH9, 2009)这类标准虚拟机标识。

  • 检查块设备信息
    查看模拟磁盘的型号标识:

    # 根据实际磁盘设备调整(如sdb、vda等)
    cat /sys/block/sda/device/model
    

    QEMU虚拟硬盘通常会显示QEMU HARDDISK。

  • 查看PCI设备日志
    若系统带有lspci工具,直接过滤QEMU相关设备:

    lspci | grep -i qemu
    

    无lspci时,可直接读取PCI设备列表文件:

    cat /proc/bus/pci/devices | grep -i qemu
    

    模拟的显卡、网卡等设备会带有QEMU标识。

  • 分析内核启动日志
    内核初始化时会记录虚拟化环境信息:

    dmesg | grep -i 'qemu\|kvm'
    

    输出中可能出现Booting paravirtualized kernel on KVM或QEMU硬件初始化的相关日志。

注意事项

  • 部分QEMU配置会伪装硬件信息,建议结合2-3种方法交叉验证,提升准确性。
  • 若自定义OS裁剪了/proc或sysfs文件系统,优先使用仍可用的节点进行检测。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 01:52:10