簡體   English   中英

如何判斷我是否在VMWARE虛擬機(來自linux)中運行?

[英]How can I tell if I'm running in a VMWARE virtual machine (from linux)?

我有一台VMWARE ESX服務器。 我在該服務器上運行Redhat VM。 如果我在VM中運行,我需要一種以編程方式測試的方法。 理想情況下,我想知道如何從Perl中做到這一點。

您不應該100%依賴任何方法,因為它們是未記錄的功能/錯誤 - 它們適用於某些主機操作系統和某些虛擬化解決方案,但不能保證它們將繼續工作; 實際上,虛擬化的全部意義在於盡可能與真實金屬無法區分。 考慮到這一點, 藍丸紅丸 (在這個類似問題的公認答案中提到)似乎有效......現在。

VMWare有幾個SDK,包括用於PerlSDK

我認為(取決於esx的版本)您可以檢查NIC的MAC地址。 在VMWare NIC中運行的VM將具有分配給VMWare的制造商字符串,而不是物理NIC MAC。 (我們試圖將MAC欺騙到VM作為許可證服務器,而較新的版本將不允許您這樣做。)此外,這並不能保證您不會在物理盒上運行,其中NIC被欺騙,看起來像VMWare,但無論如何,這在大多數情況下都是一件奇怪的事情。

運行以下命令:

lspci | grep VMware

它應該顯示如下:

00:0f.0 VGA兼容控制器:VMware SVGA II適配器

00:11.0 PCI橋:VMware PCI橋(轉02)

00:15.0 PCI橋:VMware PCI Express根端口(rev 01)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM