Une question intéressante. Je me suis connecté à un hôte Linux (probablement SuSE). Existe-t-il un moyen de dire par programme que je suis un hôte VM ou non?
Supposez également que les vmtools ne sont pas installés.
linux
virtualization
mdpc
la source
la source
Réponses:
Utilisez les outils Linux standard pour inspecter le matériel sur le système.
ou
ou
Si la sortie de ces commandes indique du matériel portant le nom de fabricant "VMWare", vous êtes sur une machine virtuelle VMWare. Plusieurs commandes sont fournies ici car la configuration du système et les outils diffèrent.
la source
cat /proc/scsi/scsi
C'est bien, car il semble être disponible partout et ne nécessite pas d'installer un nouveau logiciel ou de fonctionner avec des droits privilégiés./proc/scsi/scsi
sur ma boîte Debian 7 ...man virt-what
pour le script heuristique construit à cette fin de détection (pour les systèmes RedHat / Fedora) et pour les mises en garde impliquées.indique qu'il s'agit d'une machine virtuelle. Si elle est retournée «physique», l'inverse est vrai (pas une VM), par exemple:
la source
Il existe une application pratique qui pourrait aider, appelée virt-what . Je ne l'ai pas utilisé avec VMWare, mais cela a bien fonctionné avec Qemu.
la source
Vous pourriez peut-être avoir une idée en regardant autour de vous
/sys
. Par exemple/sys/class/dmi/id/sys_vendor
a une valeur deVMware, Inc.
.S'il est installé, vous pouvez utiliser lshw . La commande
lshw -class system
renvoie ceci sur mon système:la source
Certains environnements virtuels attribuent des noms un peu révélateurs à certains de leurs périphériques virtuels, par exemple VirtualBox présentant une carte graphique qui s'appelle elle-même "Adaptateur d'affichage VirtualBox". Mais rechercher ces liens vous lie à une machine virtuelle particulière et éventuellement à un nombre réduit de versions.
Votre code pourrait peut-être voir quel type de virtualisation il pourrait mettre en place. Si cela échoue complètement, vous pourriez être dans une VM. Mais vous pourriez aussi facilement être sur une boîte qui n’a aucun matériel capable de VM.
la source
Pour Linux, vous tapez
dmesg |grep DMI
:SORTIE HÔTE VIRTUELLE
PAR EXEMPLE D'HÔTE PHYSIQUE
la source
Il y a beaucoup de code pour détecter si vous êtes dans une VM ou non. Commencez avec la pilule rouge et cherchez à partir de là. Cet article chez Offensive Computing est également une bonne lecture.
C'est si aucune de ces choses faciles ci-dessus ne fonctionne :)
la source
Vous pouvez également rechercher la première partie de votre adresse MAC ici et voir si elle est répertoriée comme étant attribuée à l'une des sociétés de virtualisation.
la source
Les périphériques virtuels seront également révélés par lspci et / ou les informations de périphérique de disque dans / proc:
la source
Sous Linux, les informations système sont révélées dans / sys / devices / virtual / dmi / id /. Voir ma réponse ici pour un script pratique pour vous montrer toutes les informations disponibles.
racine non requise.
la source
Je n'aimais aucune de ces solutions, car il y a généralement un pilote de CD-ROM VMware ou un pilote de mémoire installé, donc dmesg me le confirme ou le refuse rapidement.
la source
Cela a mieux fonctionné pour moi car cela me donne des informations spécifiques sur le fabricant et le nom du produit.
Sortie sur le serveur Dell:
Sortie sur la machine virtuelle Virtualbox:
Sortie sur KVM / QEMU:
C'est très bien pour les scripts qui peuvent les analyser pour une meilleure identification des serveurs ... mais si vous utilisez Chef dans votre infrastructure, vous pouvez vérifier l'attribut du nœud
Virtualization -> system
dans le serveur Chef.la source
J'aime beaucoup:
ou concret:
Comment vérifier si un système Linux est une machine physique ou virtuelle
16 méthodes pour vérifier si un système Linux est une machine physique ou virtuelle
la source