回答:
標準の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
一部の仮想環境では、仮想デバイスの一部に少しわかりやすい名前を付けています。たとえば、「VirtualBox Display Adapter」と呼ばれるグラフィックカードを提示するVirtualBoxなどです。しかし、それらを探すと、特定のVMと、場合によっては狭い範囲のバージョンに結び付けられます。
コードで設定できる仮想化の種類を確認できる場合があります。それが完全に失敗する場合、VMにいる可能性があります。ただし、VM対応のハードウェアを搭載していないボックスに簡単にアクセスできます。
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 virtual DMI:Microsoft Corporation仮想マシン/仮想マシン、BIOS 090006 2012年5月23日 ベアハードウェアでの準仮想化カーネルの起動 入力:/ devices / virtual / input / input1としてのMacintoshマウスボタンエミュレーション scsi 0:0:0:0:Direct-Access Msft Virtual Disk 1.0 PQ:0 ANSI:4 入力:/ devices / virtual / input / input4としてのMicrosoft Vmbus HID準拠マウス
[root @ backdev1〜]#dmesg | grep DMI DMI 2.5が存在します。 DMI:IBM System x3650 M3-[7945AC1]-/ 90Y4784、BIOS-[D6E153AUS-1.12]-2011年6月30日
通常、VMwareのCDROMドライバーまたはメモリドライバーがインストールされているため、これらのソリューションはどれも好きではありませんでした。
[server @ user〜] $ dmesg | grep VMware hda:VMware Virtual IDE CDROMドライブ、ATAPI CD / DVD-ROMドライブ ベンダー:VMwareモデル:仮想ディスクRev:1.0 ベンダー:VMwareモデル:仮想ディスクRev:1.0 ベンダー:VMwareモデル:仮想ディスクRev:1.0 ベンダー:VMwareモデル:仮想ディスクRev:1.0 ベンダー:VMwareモデル:仮想ディスクRev:1.0 ベンダー:VMwareモデル:仮想ディスクRev:1.0 ベンダー:VMwareモデル:仮想ディスクRev: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サーバーのノード属性を確認できます。
とても好きです:
hostnamectl status
またはコンクリート:
hostnamectl status | grep "Chassis:"