Lösung 1:
Verwenden Sie Standard-Linux-Tools, um die Hardware auf dem System zu überprüfen.
cat /proc/scsi/scsi
oder
ethtool -i eth0
oder
dmidecode | grep -i vmware
Wenn die Ausgabe dieser Befehle Hardware mit dem Herstellernamen „VMWare“ anzeigt, befinden Sie sich auf einer VMWare-VM. Hier werden mehrere Befehle bereitgestellt, da Systemkonfigurationen und Tools unterschiedlich sind.
Lösung 2:
facter virtual
xenu
gibt an, dass es sich um eine VM handelt. Wenn „physical“ zurückgegeben wird, ist das Gegenteil der Fall (keine VM), z. B.:
facter virtual
Physical
Lösung 3:
Vielleicht können Sie sich ein Bild davon machen, indem Sie sich unter /sys
umsehen . Zum Beispiel /sys/class/dmi/id/sys_vendor
hat einen Wert von VMware, Inc.
.
Wenn es installiert ist, können Sie lshw verwenden . Der Befehl lshw -class system
gibt dies auf meinem System zurück:
server1
description: Computer
product: VMware Virtual Platform
vendor: VMware, Inc.
version: None
serial: VMware-...
width: 64 bits
capabilities: smbios-2.4 dmi-2.4 vsyscall64 vsyscall32
Lösung 4:
Es gibt eine praktische App namens virt-what, die helfen könnte . Ich habe es nicht mit VMWare verwendet, aber mit Qemu hat es gut funktioniert.
Lösung 5:
Einige virtuelle Umgebungen benennen einige ihrer virtuellen Geräte mit etwas verräterischen Namen, zum Beispiel stellt VirtualBox eine Grafikkarte dar, die sich selbst "VirtualBox Display Adapter" nennt. Aber die Suche danach bindet Sie an eine bestimmte VM und möglicherweise an eine enge Reihe von Versionen.
Möglicherweise kann Ihr Code sehen, welche Art von Virtualisierung er einrichten könnte. Wenn dies vollständig fehlschlägt, befinden Sie sich möglicherweise in einer VM. Aber Sie könnten sich genauso gut auf einem Rechner befinden, der keine VM-fähige Hardware hat.