web-dev-qa-db-ja.com

VMware Linux Server-あなたがvmか本物のハードウェアかをどのようにして見分けることができますか?

興味深い質問です。 Linux(おそらくSuSE)ホストにログインしました。私がVMホストであるかどうかをプログラムで示すことができるいくつかの方法はありますか?

また、vmtoolsがインストールされていないと仮定します。

46
mdpc

標準のLinuxツールを使用して、システム上のハードウェアを検査します。

cat /proc/scsi/scsi

または

ethtool -i eth0

または

dmidecode | grep -i vmware

これらのコマンドの出力に「VMWare」というメーカー名のハードウェアが表示されている場合は、VMWare VMを使用しています。システム構成とツールが異なるため、ここでは複数のコマンドを示します。

29
Greg Cain
facter virtual 
xenu

vMであることを示します。それが「物理的」を返した場合、反対は真です(VMではありません)。例:

facter virtual
Physical
13
user155575

virt-what と呼ばれる便利なアプリがあります。私はこれをVMWareで使用していませんが、Qemuでうまく機能しました。

11
Raynet

/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
10
Zoredache

一部の仮想環境は、仮想デバイスの一部に少しわかりやすい名前を付けます。たとえば、VirtualBoxは、それ自体を「VirtualBoxディスプレイアダプター」と呼ぶグラフィックスカードを提示します。しかし、それらを探して特定のVMとおそらく狭いバージョンのバージョンに結び付けます。

コードが、どのような仮想化をセットアップできるかを確認できる可能性があります。それが完全に失敗する場合は、VMにいる可能性があります。しかし、VM対応ハードウェアがないボックスにいるのは簡単です。

6
staticsan

VMかどうかを判断するためのコードがたくさんあります。 red pill で始めて、そこから検索してください。 Offensive Computing のこの論文も参考になります。

それは、上記の簡単なものがどれも機能しない場合です:)

4
Bill Weiss

Linuxの場合、dmesg |grep DMIと入力します。

仮想ホスト出力

 [root @ myhost〜]#dmesg | grep DMI 
 DMI 2.3 present。
 DMI:Microsoft Corporation Virtual Machine/Virtual Machine、BIOS 090006 05/23/2012 
 
 [root @ myhost〜]#dmesg | grep -i virtual 
 DMI:Microsoft Corporation Virtual Machine/Virtual Machine、BIOS 090006 05/23/2012 
起動準仮想化カーネル裸のハードウェア
入力:/ devices/virtual/input/input1としてのMacintoshマウスボタンエミュレーション
 scsi 0:0:0:0:ダイレクトアクセスMSFT仮想ディスク1.0 PQ:0 ANSI:4 
 input:/ devices/virtual/input/input4としてのMicrosoft Vmbus HID準拠マウス

物理ホストの例

 [root @ backdev1〜]#dmesg | grep DMI 
 DMI 2.5 present。
 DMI:IBM System x3650 M3-[7945AC1]-/ 90Y4784、BIOS-[D6E153AUS-1.12 ]-2011年6月30日
4
gabo34

Macアドレスの最初の部分 here を検索して、仮想化会社に割り当てられているものとしてリストされているかどうかを確認することもできます。

3
Zypher

仮想デバイスは、/ procのlspciまたはディスクデバイス情報、あるいはその両方によっても表示されます。

lspci | grep -i vmware

grep -i vmware /proc/scsi/scsi /proc/ide/*/model
3
Heath

Linuxでは、システム情報は/ sys/devices/virtual/dmi/id /で公開されます。入手可能なすべての情報を示す便利なスクリプトについては、私の回答 こちら を参照してください。

ルートは必要ありません。

2
Mike S

これは、製造元と製品名に関する特定の情報を提供してくれるので、私にとってはうまくいきました。

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を使用している場合は、chefサーバーのノード属性Virtualization -> systemを確認できます。

1
user751528

通常、VMware CDROMドライバーまたはメモリードライバーがインストールされているため、dmesgが迅速に確認または拒否するため、これらのソリューションはどれも気に入りませんでした。

 [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モデル:仮想ディスクのリビジョン:1.0 
ベンダー:VMwareモデル:仮想ディスクのリビジョン:1.0 
ベンダー:VMwareモデル:仮想ディスクのリビジョン:1.0 
ベンダー:VMwareモデル:仮想ディスクのリビジョン:1.0 
 VMwareメモリ制御ドライバが初期化されました
1
Greg

わたしはとても好きだ:

hostnamectl status 

またはコンクリート:

hostnamectl status | grep "Chassis:"

Linuxシステムが物理マシンか仮想マシンかを確認する方法

Linuxシステムが物理マシンか仮想マシンかを確認する16の方法