Une question intéressante. Je me suis connecté à un hôte Linux (probablement SuSE). Existe-t-il un moyen de savoir de manière programmatique si je suis un hôte VM ou non ?
Supposons également que les outils vmtools ne sont pas installés.
Une question intéressante. Je me suis connecté à un hôte Linux (probablement SuSE). Existe-t-il un moyen de savoir de manière programmatique si je suis un hôte VM ou non ?
Supposons également que les outils vmtools ne sont pas installés.
Utilisez les outils Linux standard pour inspecter le matériel du système.
cat /proc/scsi/scsi
o
ethtool -i eth0
o
dmidecode | grep -i vmware
Si la sortie de ces commandes montre un matériel dont le nom du fabricant est "VMWare", vous êtes sur une VM VMWare. Plusieurs commandes sont fournies ici car les configurations des systèmes et les outils diffèrent.
Vous pourrez peut-être vous faire une idée en regardant sous la rubrique /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
retourne 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
Certains environnements virtuels donnent à certains de leurs périphériques virtuels des noms un peu révélateurs. Par exemple, VirtualBox présente une carte graphique qui se nomme elle-même "VirtualBox Display Adapter". Mais la recherche de ces noms vous lie à un environnement virtuel particulier et éventuellement à une gamme étroite de versions.
Il pourrait être possible pour votre code de voir quel type de virtualisation il pourrait mettre en place. En cas d'échec total, il se peut que vous soyez dans une VM. Mais il est tout aussi possible que vous soyez sur une machine qui ne dispose d'aucun matériel capable de fonctionner en mode VM.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.