我如何在Linux系统中判断自己是否在VMWARE虚拟机中运行?

10

我有一台VMWARE ESX服务器,上面运行着Redhat虚拟机。我需要一种编程方式来测试是否在虚拟机中运行。最好能够使用Perl语言实现。

5个回答


4

3

VMWare有几个SDK,其中包括一个Perl SDK


2

我认为(根据esx的版本),您可以检查NIC的MAC地址。在VMWare中运行的虚拟机将分配给VMWare一个制造商字符串,而不是物理NIC MAC。(我们试图欺骗MAC来虚拟许可证服务器,但新版本不能这样做。)此外,这并不能保证您不是在物理盒子上运行,并且其NIC已欺骗成看起来像VMWare,但在大多数情况下这都是奇怪的事情。


Virtualbox 允许您输入任何想要的 MAC 地址。 - Martin Beckett
我认为你可以在ESX中更改它。如果您正在尝试在虚拟机中运行许可的应用程序,则这是一个非常有用的功能。 - Martin Beckett

2
运行以下命令:
lspci | grep VMware

它应该显示类似于这样的内容:

00:0f.0 显卡兼容控制器:VMware SVGA II 适配器

00:11.0 PCI 桥接器:VMware PCI 桥接器(修订版02)

00:15.0 PCI 桥接器:VMware PCI Express 根端口(修订版01)


我在使用VirtualBox时(在Windows系统上安装Ubuntu客户机),甚至也能看到VMware VGA控制器。 - Jeff Learman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接