Как я могу определить, работаю ли я на виртуальной машине VMWARE (из linux)?
У меня есть сервер VMWARE ESX. У меня есть RedHat VMs, работающие на этом сервере. Мне нужен способ программного тестирования, если я работаю в виртуальной машине. В идеале, я хотел бы знать, как это сделать от Perl.
5 ответов
вы не должны на 100% зависеть от любого метода, поскольку они являются недокументированными функциями / ошибками - они работают на некоторых ОС хоста и некоторых решениях виртуализации, но нет никакой гарантии, что они будут продолжать работать; действительно, весь смысл виртуализации должен быть как можно менее отличимым от реального металла. Имея это в виду, синяя таблетка Красная таблетка (который упоминается в принятом ответе на этот же вопрос), Кажется, работает ... пока.
Я думаю (в зависимости от версии esx), вы можете проверить на MAC-адресе NIC. У виртуальных машин, работающих в VMWare NIC, будет строка производителя, назначенная VMWare, без физического NIC MAC. (Мы пытались подделать MAC на VM сервер лицензий, и более новые версии не позволят вам это сделать.) Кроме того, это не гарантирует, что вы не работаете на физическом ящике с NIC, подделанным под VMWare, но это было бы странно делать в большинстве случаев.
выполните следующую команду:
lspci | grep VMware
Он должен показать что-то вроде этого:
00: 0f.0 VGA совместимый контроллер: VMware SVGA II адаптер
00: 11.0 PCI bridge: VMware PCI bridge (rev 02)
00: 15.0 PCI мост: VMware PCI Express корневой порт (rev 01)