Wie kann ich feststellen, ob ich in einer virtuellen VMware-Maschine (von linux) renne?

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

  •  22-08-2019
  •  | 
  •  

Frage

Ich habe einen VMWARE ESX Server. Ich habe Redhat VMs auf dem Server ausgeführt wird. Ich brauche einen Weg programmatisch Prüfung, ob ich in einer VM laufen lasse. Im Idealfall würde ich gerne wissen, wie diese von Perl zu tun.

War es hilfreich?

Lösung

Sehen Sie die Antwort auf " Detect virtualisierten OS aus einer Anwendung? " .

Andere Tipps

Sie sollten nicht zu 100% sind abhängig von jeder Methode, da sie nicht dokumentierte Funktionen / Bugs sind - sie arbeiten auf einigen Host-Betriebssysteme und einige Virtualisierungslösungen, aber es gibt keine Garantie, dass sie weiterarbeiten wird; in der Tat ist der springende Punkt bei der Virtualisierung als ununterscheidbar aus echtem Metall wie möglich zu sein. In diesem Sinne, die blaue Pille rote Pille (die in der akzeptierte Antwort erwähnt wird auf diese ähnliche Frage ) ... für jetzt zu arbeiten.

VMWare hat ein paar SDK, einschließlich eines SDK für Perl .

Ich denke, (je nach Version von esx) Sie an der MAC-Adresse des NIC überprüfen können. VMs in VMWare NIC ausgeführt wird, einen Hersteller Zeichenfolge zugewiesen VMWare hat, nicht den physischen NIC MAC. (Wir haben versucht, die MAC-VM einen Lizenzserver zu fälschen und neuere Versionen werden nicht zulassen, Sie es tun.) Auch dies wird nicht garantieren, sind Sie nicht auf einem physischen Box mit einem NIC läuft spoofed wie VMWare zu suchen, aber das wäre eine seltsame Sache ohnehin in den meisten Fällen zu tun.

Führen Sie den folgenden Befehl ein:

lspci | grep VMware

Es sollte wie folgt zeigen:

  

00: 0f.0 VGA-kompatiblen Controller: VMware SVGA II Adapter

     

00: 11,0 PCI Bridge: VMware PCI-Brücke (rev 02)

     

00: 15.0 PCI Bridge: VMware PCI Express Root Port (rev 01)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top