Answers:
使用标准的Linux工具检查系统上的硬件。
cat /proc/scsi/scsi
要么
ethtool -i eth0
要么
dmidecode | grep -i vmware
如果这些命令的输出显示制造商名称为“ VMWare”的硬件,则说明您使用的是VMWare VM。由于系统配置和工具不同,此处提供了多个命令。
cat /proc/scsi/scsi
很好,因为它似乎无处不在,并且不需要安装新软件或以特权权限运行。
/proc/scsi/scsi
在我的Debian 7盒子上看不到...
man virt-what
为此检测目的而构建的启发式脚本(对于RedHat / Fedora系统)和所涉及的警告,请参阅。
您可能可以通过环顾四周获得想法/sys
。例如/sys/class/dmi/id/sys_vendor
,值为VMware, Inc.
。
如果已安装,则可以使用lshw。该命令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
对于Linux,您输入dmesg |grep DMI
:
[root @ myhost〜]#dmesg | grep DMI 存在DMI 2.3。 DMI:Microsoft Corporation虚拟机/虚拟机,BIOS 090006,2012年5月23日 [root @ myhost〜]#dmesg | grep -i虚拟 DMI:Microsoft Corporation虚拟机/虚拟机,BIOS 090006,2012年5月23日 在裸机上引导半虚拟化内核 输入:Macintosh鼠标按钮模拟为/ devices / virtual / input / input1 scsi 0:0:0:0:Direct-Access Msft虚拟磁盘1.0 PQ:0 ANSI:4 输入:Microsoft Vmbus HID兼容鼠标为/ devices / virtual / input / input4
[root @ backdev1〜]#dmesg | grep DMI 存在DMI 2.5。 DMI:IBM System x3650 M3-[7945AC1]-/ 90Y4784,BIOS-[D6E153AUS-1.12]-2011年6月30日
我不喜欢这些解决方案,因为通常会安装VMware CDROM驱动程序或内存驱动程序,因此dmesg会迅速为我确认或拒绝它。
[server @ user〜] $ dmesg | grep VMware hda:VMware虚拟IDE CDROM驱动器,ATAPI CD / DVD-ROM驱动器 供应商:VMware模型:虚拟磁盘修订版:1.0 供应商:VMware模型:虚拟磁盘修订版:1.0 供应商:VMware模型:虚拟磁盘修订版:1.0 供应商:VMware模型:虚拟磁盘修订版:1.0 供应商:VMware模型:虚拟磁盘修订版:1.0 供应商:VMware模型:虚拟磁盘修订版:1.0 供应商:VMware模型:虚拟磁盘修订版:1.0 VMware内存控制驱动程序已初始化
这对我来说效果更好,因为它为我提供了有关制造商和产品名称的特定信息。
dmidecode -t system|grep 'Manufacturer\|Product'
Dell服务器上的输出:
Manufacturer: Dell Inc.
Product Name: PowerEdge C5220
在Virtualbox VM上的输出:
Manufacturer: innotek GmbH
Product Name: VirtualBox
在KVM / QEMU上的输出:
Manufacturer: QEMU
Product Name: Standard PC (i440FX + PIIX, 1996)
这对于可以解析这些脚本以更好地识别服务器的脚本非常有用...但是,如果您在基础架构中使用Chef,则可以Virtualization -> system
在Chef服务器中检查node属性。
我非常喜欢:
hostnamectl status
或具体:
hostnamectl status | grep "Chassis:"