VMware Linux Server——如何判断您是虚拟机还是真实硬件?

VMware Linux Server——如何判断您是虚拟机还是真实硬件?

一个有趣的问题。我已登录 Linux(很可能是 SuSE)主机。有没有什么方法可以通过编程判断我是否是 VM 主机?

还假设 vmtools 尚未安装。

答案1

使用标准 Linux 工具检查系统上的硬件。

cat /proc/scsi/scsi

或者

ethtool -i eth0

或者

dmidecode | grep -i vmware

如果这些命令的输出显示制造商名称为“VMWare”的硬件,则说明您使用的是 VMWare VM。由于系统配置和工具不同,因此这里提供了多个命令。

答案2

facter virtual 
xenu

表示它是虚拟机。如果返回“物理”,则相反(不是虚拟机),例如:

facter virtual
Physical

答案3

您可能能够通过查看 来获得想法/sys。例如/sys/class/dmi/id/sys_vendor的值为VMware, Inc.

如果已安装,您可以使用瘦身。该命令lshw -class system在我的系统上返回以下内容:

server1
    description: Computer
    product: VMware Virtual Platform
    vendor: VMware, Inc.
    version: None
    serial: VMware-...
    width: 64 bits
    capabilities: smbios-2.4 dmi-2.4 vsyscall64 vsyscall32

答案4

一些虚拟环境会给某些虚拟设备起一些比较明显的名称,例如 VirtualBox 会将显卡命名为“VirtualBox 显示适配器”。但寻找这些名称会将您与特定的 VM 以及可能的范围较小的版本联系起来。

您的代码可能能够看到它可以设置哪种虚拟化。如果完全失败,您可能处于虚拟机中。但您也可能处于没有任何支持虚拟机的硬件的机器上。

相关内容