Как узнать, работаю ли я на виртуальной машине VMWARE (из Linux)?

StackOverflow https://stackoverflow.com/questions/540907

  •  22-08-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Другие советы

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

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

Я думаю (в зависимости от версии esx) можно проверить MAC-адрес сетевой карты.Виртуальным машинам, работающим в сетевом адаптере VMWare, будет назначена строка производителя, присвоенная VMWare, а не физический MAC-адрес сетевого адаптера.(Мы пытались подделать MAC-адрес виртуальной машины на сервере лицензий, но новые версии не позволят вам это сделать.) Кроме того, это не гарантирует, что вы не работаете на физическом компьютере с подделанным сетевым адаптером, чтобы он выглядел как 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 (версия 01)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top