Solution 1 :
Utilisez des outils Linux standard pour inspecter le matériel du système.
cat /proc/scsi/scsi
ou
ethtool -i eth0
ou
dmidecode | grep -i vmware
Si la sortie de ces commandes affiche un matériel avec un nom de fabricant "VMWare", vous êtes sur une machine virtuelle VMWare. Plusieurs commandes sont fournies ici car les configurations système et les outils diffèrent.
Solution 2 :
facter virtual
xenu
indique qu'il s'agit d'une machine virtuelle. S'il a renvoyé « physique », alors l'inverse est vrai (pas une VM), par exemple :
facter virtual
Physical
Solution 3 :
Vous pourrez peut-être vous faire une idée en regardant autour de vous sous /sys
. Par exemple /sys/class/dmi/id/sys_vendor
a une valeur de VMware, Inc.
.
S'il est installé, vous pouvez utiliser lshw . La commande lshw -class system
renvoie ceci sur mon système :
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
Solution 4 :
Il existe une application pratique appelée virt-what qui pourrait vous aider. . Je ne l'ai pas utilisé avec VMWare, mais cela a bien fonctionné avec Qemu.
Solution 5 :
Certains environnements virtuels nomment certains de leurs périphériques virtuels avec des noms un peu révélateurs, par exemple, VirtualBox présentant une carte graphique qui s'appelle "VirtualBox Display Adapter". Mais la recherche de ceux-ci vous lie à une machine virtuelle particulière et éventuellement à une gamme étroite de versions.
Il est peut-être possible pour votre code de voir quel type de virtualisation il pourrait mettre en place. Si cela échoue complètement, vous êtes peut-être dans une machine virtuelle. Mais vous pourriez tout aussi bien être sur une boîte qui n'a pas de matériel compatible VM.