VMware Linux Server — vmまたは実際のハードウェアであるかどうかをどのように確認できますか?


回答:


29

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

cat /proc/scsi/scsi

または

ethtool -i eth0

または

dmidecode | grep -i vmware

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


12
あいまいなコマンドだけを提供するのではなく、これらのコマンドが何をするのか説明できますか?
ステファンLasiewski 14年

ありがとう。cat /proc/scsi/scsiどこでも利用可能であるようで、新しいソフトウェアをインストールしたり、特権権限で実行したりする必要がないため、素晴らしいです。
tiktak

私は表示されません@tiktak /proc/scsi/scsi...私のDebian 7ボックスに
カイルストランド

1
これは100%信頼できるものではないことに注意してください。たとえば、AWSボックスはVMのようには見えません。man virt-whatこの検出目的(RedHat / Fedoraシステム用)および関連する警告については、ヒューリスティックスクリプトを参照してください。
ワイルドカード

13
facter virtual 
xenu

VMであることを示します。「物理的」を返した場合、逆のことが当てはまります(VMではありません)。

facter virtual
Physical

ただし、これは非標準の特別なパッケージです。
mdpc

1
@mdpc puppetを使用するすべてのシステムに存在する必要があります。
マイケルハンプトン

11

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


1
残念ながら、SuSEコマーシャルで試された場合、バイナリRPMにはdmidecodeとutil-linux-ngの2つの依存関係があります。
mdpc

10

あなたは下の周りを見ることで取得し、アイデアすることができるかもしれません/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

lshwにアクセスできるSuSEインスタンスには存在しません。さらに、/ sys / class / dmi / ...は存在しません。
mdpc

6

一部の仮想環境では、仮想デバイスの一部に少しわかりやすい名前を付けています。たとえば、「VirtualBox Display Adapter」と呼ばれるグラフィックカードを提示するVirtualBoxなどです。しかし、それらを探すと、特定のVMと、場合によっては狭い範囲のバージョンに結び付けられます。

コードで設定できる仮想化の種類を確認できる場合があります。それが完全に失敗する場合、VMにいる可能性があります。ただし、VM対応のハードウェアを搭載していないボックスに簡単にアクセスできます。


最初の答えは正しいものでした。デバイスドライバー名を確認します。
イジー

4

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日

1
ソリューションの主な問題は、dmesgがカーネルバッファーを読み取ることで、サイズが制限されていることです。システムが再起動されてから多くのメッセージまたは少しの時間がある場合、この情報は利用できません。
mdpc 14

4

VMにいるかどうかを検出するためのコードはたくさんあります。赤い丸薬から始めて、そこから検索します。 オフェンシブコンピューティングのこの論文参考になります。

上記の簡単なものが機能しない場合です:)


最初のリンクが壊れています。2番目は壊れているか遅いです。
ワイルドカード

あなたが正しい。時間の砂はそれらを食べました...私は代替リンクを思い付くことができるかどうかを確認します。
ビルヴァイス

それは残念だ; 「赤い丸薬」は面白そうだ。:)
ワイルドカード

1
archive.orgリンクで更新されました。
ビルヴァイス

3

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


(ネットワークデバイスがVM ;-)に含まれている限り)面白いアイデア....私はその作品を考える
MDPC

2
信頼できません。多くの場合、macは任意の値に設定できます。これにより、元のマシンをVMに変換する際に元のマシンのMacのクローンを作成できます。一部のソフトウェアは、ライセンスをMacに関連付けており、多くの場合、新しいライセンスを取得することはできません(ベンダーが破綻したか、コストが高すぎます)。
トニー

3

仮想デバイスは、lspciや/ procのディスクデバイス情報でも表示されます。

lspci | grep -i vmware

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

2

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

ルートは不要です。


1

通常、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メモリ制御ドライバーが初期化されました

3
これは起動時に機能しますが、後でdmesgがクリアまたはオーバーフローしていないことを保証できません。
mattdm

これは、私は通常、あまりにもgrepをされてdmesgの何をすべきかです
tpaul

1

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

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サーバーのノード属性を確認できます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.