Как я могу узнать, что я работаю на виртуальной машине VMWARE (из linux)? - PullRequest
10 голосов
/ 12 февраля 2009

У меня есть сервер VMWARE ESX. У меня есть виртуальные машины Redhat, работающие на этом сервере. Мне нужен способ программного тестирования, если я работаю на виртуальной машине. В идеале я хотел бы знать, как это сделать из Perl.

Ответы [ 5 ]

7 голосов
/ 12 февраля 2009
4 голосов
/ 12 февраля 2009

Вы не должны на 100% зависеть от какого-либо метода, поскольку это недокументированные функции / ошибки - они работают на некоторых хост-ОС и некоторых решениях для виртуализации, но нет гарантии, что они продолжат работать; действительно, весь смысл виртуализации в том, чтобы быть как можно более неотличимым от реального металла. Имея это в виду, синяя таблетка красного цвета (которая упоминается в принятом ответе на этот похожий вопрос ), похоже, работает ... пока.

3 голосов
/ 12 февраля 2009

VMWare имеет несколько SDK, включая SDK для Perl .

2 голосов
/ 12 февраля 2009

Я думаю (в зависимости от версии esx) вы можете проверить по MAC-адресу сетевой карты. Виртуальные машины, работающие в NIC VMWare, будут иметь строку производителя, назначенную VMWare, а не физический MAC NIC. (Мы пытались подделать MAC для VM на сервере лицензий, и более новые версии не позволят вам сделать это.) Кроме того, это не будет гарантировать, что вы не работаете на физическом устройстве с поддельной сетевой картой, похожей на VMWare, но в любом случае это было бы странным делом в большинстве случаев.

1 голос
/ 26 июня 2013

Запустите следующую команду:

lspci | grep VMware

Это должно показать что-то вроде этого:

00: 0f.0 VGA-совместимый контроллер: адаптер VMware SVGA II

00: 11.0 Мост PCI: Мост VMware PCI (версия 02)

00: 15.0 Мост PCI: корневой порт VMware PCI Express (версия 01)

...