Comment puis-je savoir si je suis en cours d'exécution dans une machine virtuelle VMWARE (à partir de linux)?

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

  •  22-08-2019
  •  | 
  •  

Question

J'ai un serveur VMware ESX. J'ai des machines virtuelles en cours d'exécution Redhat sur ce serveur. Je besoin d'un moyen de tester si je programatically en cours d'exécution dans une machine virtuelle. Idéalement, je voudrais savoir comment faire de Perl.

Était-ce utile?

La solution

Autres conseils

Vous ne devriez pas 100% dépendez toute méthode, car ils sont caractéristiques sans papiers / bugs - ils travaillent sur des systèmes d'exploitation hôtes et des solutions de virtualisation, mais il n'y a aucune garantie qu'ils continueront à travailler; En effet, le point de la virtualisation tout est d'être aussi indiscernables du métal réel que possible. Avec cela à l'esprit, le (qui est mentionné dans la réponse acceptée à href="https://stackoverflow.com/questions/154163/detect-virtualized-os-from-an-application"> ) semble fonctionner ... pour l'instant.

Je pense que (selon la version de esx) vous pouvez consulter à l'adresse MAC de la carte réseau. Machines virtuelles en cours d'exécution dans la carte réseau VMWare aura une chaîne de fabricant attribué à VMWare, pas la carte réseau physique MAC. (Nous avons essayé d'usurper l'adresse MAC à VM un serveur de licences et les versions plus récentes ne trahirons pas le faire). De plus, cela vous ne garantira n'êtes pas en cours d'exécution sur une boîte physique avec une carte réseau usurpée pour ressembler à VMWare, mais ce serait une chose étrange à faire dans la plupart des cas de toute façon.

Exécutez la commande suivante:

lspci | grep VMware

Il doit montrer quelque chose comme ceci:

  

00: 0f.0 VGA compatible controller: VMware Adaptateur SVGA II

     

00: 11,0 pont PCI: VMware pont PCI (rev 02)

     

00: 15.0 PCI bridge: VMware PCI Express Racine Port (rev 01)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top