Linux 系统虚拟化平台识别与 CPU 架构收集指南

Linux 系统虚拟化平台识别与 CPU 架构查询指南

一、虚拟化平台识别

通过读取系统 DMI(桌面管理接口)信息,可快速识别物理机、虚拟机或云服务器的硬件与平台归属。以下是核心查询命令及说明。

1.1 基础信息查询命令表

功能 执行命令 核心作用
查看产品型号 cat /sys/class/dmi/id/product_name 识别设备硬件型号(区分虚拟/物理)
查看厂商 cat /sys/class/dmi/id/sys_vendor 确认设备供应商(如 QEMU、阿里云)
查看主板型号 cat /sys/class/dmi/id/board_name 获取主板具体型号(硬件兼容性判断)
查看序列号 cat /sys/class/dmi/id/product_serial 读取设备唯一序列号(资产管理)
查看 UUID dmidecode -s system-uuid 获取系统全球唯一标识符

1.2 各字段详细说明

查看产品型号

  • 命令cat /sys/class/dmi/id/product_name
  • 原理:DMI 规范通过 /sys/class/dmi/id/product_name 暴露设备“产品名称”,用于区分硬件类型。
  • 场景示例
    1
    2
    3
    4
    5
    6
    7
    # pnet 模拟 QEMU 环境输出
    root@ubuntu:~# cat /sys/class/dmi/id/product_name
    Standard PC (i440FX + PIIX, 1996)

    # 云厂商虚拟机输出(以腾讯云为例)
    root@VM-8-7-ubuntu:~# cat /sys/class/dmi/id/product_name
    CVM

查看系统厂商

  • 命令cat /sys/class/dmi/id/sys_vendor
  • 原理:读取 DMI 中“系统厂商”字段,直接定位设备供应商。
  • 场景示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
esxi虚拟化平台
cat /sys/class/dmi/id/product_name
VMware Virtual Platform


pnet 模拟 QEMU 环境输出
root@ubuntu:~# cat /sys/class/dmi/id/sys_vendor
QEMU

腾讯云服务器输出
root@VM-8-7-ubuntu:~# cat /sys/class/dmi/id/sys_vendor
Tencent Cloud

阿里云服务器输出
root@iZ2vc1dyi214rtrlxkmv2wZ:~# cat /sys/class/dmi/id/sys_vendor
Alibaba Cloud

查看主板型号

  • 命令cat /sys/class/dmi/id/board_name
  • 原理:读取 DMI 中“主板产品名称”,用于识别主板型号及硬件兼容性。
  • 场景示例
    • 物理机:显示具体主板型号,如戴尔 0T6H8R、华硕 PRIME B550M-A
    • 虚拟机:显示虚拟化平台模拟主板,如 VMware 440BX Desktop Reference Platform、QEMU i440FX - 82371AB/EB/MB PIIX4
  • 作用:辅助判断 CPU/内存兼容性、查找主板手册、安装驱动。

查看设备序列号

  • 命令cat /sys/class/dmi/id/product_serial
  • 原理:读取 DMI 中“产品序列号”,获取设备唯一标识(类似“硬件身份证”)。
  • 场景示例
    • 物理机:戴尔 ABC123456、联想 L12345678(用于保修查询)
    • 虚拟机:VMware 虚拟序列号 VMware-12 34 56 78 90 ab cd ef-12 34 56 78 90 ab cd ef
    • 云服务器:云厂商实例唯一标识(如阿里云/腾讯云实例序列号)
  • 作用:硬件保修、企业资产管理、合规性审计。

查看系统 UUID

  • 命令dmidecode -s system-uuid
  • 原理:通过 dmidecode 工具读取 DMI 中“系统 UUID”,获取 128 位全球唯一标识符(格式:8-4-4-4-12)。
  • 输出示例
    1
    2
    root@ubuntu:~# dmidecode -s system-uuid
    550e8400-e29b-41d4-a716-446655440000
  • 不同环境来源
    • 物理机:主板制造商写入 BIOS/UEFI
    • 虚拟机:虚拟化平台(VMware/QEMU)生成
    • 云服务器:云厂商分配(绑定实例)
  • 作用:虚拟化环境节点区分、集群管理、系统迁移身份验证。


二、CPU 架构查询

通过以下命令可全面获取 CPU 硬件信息,包括架构、核心/线程数、指令集、虚拟化支持等。

2.1 CPU 信息查询命令对比表

命令 核心功能 关键特点/适用场景
lscpu 格式化输出 CPU 架构、核心/线程、频率、缓存、虚拟化支持 无需 root,输出直观;适合快速判断 CPU 规格、虚拟化支持
cat /proc/cpuinfo 按逻辑 CPU 拆分,展示每个核心的详细参数(如 physical idcore id 适合细致排查核心/线程配置、单核心参数
dmidecode -t processor 读取 DMI 固件数据,显示 CPU 硬件级信息(如插槽类型、标称主频) 需 root,贴近厂商原始参数;虚拟环境显示模拟 CPU 信息
nproc 直接输出逻辑 CPU 总数(总线程数) 命令极简,无需 root;适合脚本中快速获取线程数
lshw -class processor 输出结构化 CPU 详情(如总线速度、电压) 需 root,信息细致;适合深度了解 CPU 硬件特性
cpuid 查询 CPU 底层特性(指令集、缓存结构、虚拟化支持) 需手动安装;适合兼容性验证、技术选型(如 AVX2、VT-x 支持)
htop/top 实时监控 CPU 核心数、使用率、负载状态 htop 界面友好(支持鼠标);适合实时资源监控

2.2 核心命令详细说明

lscpu 命令(推荐优先使用)

  • 功能:格式化输出 CPU 关键信息,无需 root 权限,是最常用的 CPU 查询工具。
  • 输出字段含义
字段 含义说明
Architecture CPU 架构(如 x86_64=64 位 x86,aarch64=ARM 64 位)
CPU op-mode(s) 支持的运行模式(如 32-bit, 64-bit 表示兼容 32/64 位程序)
CPU(s) 总逻辑 CPU 数(= 物理核心数 × 每核心线程数)
Thread(s) per core 每核心线程数(2 表示支持超线程)
Core(s) per socket 每 CPU 插槽的物理核心数
Socket(s) CPU 物理插槽数(服务器常为 2 或更多)
Vendor ID CPU 厂商(GenuineIntel=英特尔,AuthenticAMD=AMD)
Model name CPU 具体型号(如 Intel(R) Core(TM) i5-10400F CPU @ 2.90GHz
Virtualization 虚拟化技术(VT-x=英特尔,AMD-V=AMD)
Cache size L3 缓存总大小(部分显示 L1/L2 缓存)
  • 场景示例(pnet-Labs 模拟环境)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    root@ubuntu:~# lscpu
    Architecture: x86_64
    CPU op-mode(s): 32-bit, 64-bit
    Address sizes: 40 bits physical, 48 bits virtual
    Byte Order: Little Endian
    CPU(s): 2
    On-line CPU(s) list: 0,1
    Vendor ID: GenuineIntel
    Model name: QEMU Virtual CPU version 2.5+
    CPU family: 6
    Model: 6
    Thread(s) per core: 1
    Core(s) per socket: 1
    Socket(s): 2
    Stepping: 3
    BogoMIPS: 5222.39
    Flags: fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm
    cpuid_fault pti
    Virtualization features:
    Hypervisor vendor: KVM
    Virtualization type: full
    Caches (sum of all):
    L1d: 64 KiB (2 instances)
    L1i: 64 KiB (2 instances)
    L2: 8 MiB (2 instances)
    L3: 32 MiB (2 instances)
    NUMA:
    NUMA node(s): 1
    NUMA node0 CPU(s): 0,1

cat /proc/cpuinfo 命令

  • 功能:读取 /proc 虚拟文件系统,按逻辑 CPU 拆分输出(每个核心单独一段)。
  • 适用场景:需查看单核心参数(如 cpu MHzflags 指令集)时使用。

nproc 命令

  • 功能:极简输出逻辑 CPU 总数(总线程数)。
  • 示例
    1
    2
    3
    # 双线程 CPU 输出
    root@ubuntu:~# nproc
    2