47 votes

VMware Linux Server - comment savoir si l'on est dans une vm ou dans du vrai matériel ?

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.

1voto

Keshav Srinivasan Points 111

Je n'ai aimé aucune de ces solutions, car il y a généralement un pilote de CDROM VMware ou un pilote de mémoire installé et dmesg le confirme ou l'infirme rapidement.

\[server@user ~\]$ dmesg |grep VMware
hda: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
VMware memory control driver initialized

1voto

unwiredbrain Points 1

Cela m'a mieux convenu car cela me donne des informations spécifiques sur le fabricant et le nom du produit.

dmidecode -t system|grep 'Manufacturer\|Product'

Sortie sur le serveur Dell :

Manufacturer: Dell Inc.
Product Name: PowerEdge C5220

Sortie sur Virtualbox VM :

Manufacturer: innotek GmbH
Product Name: VirtualBox

Sortie sur KVM/QEMU :

Manufacturer: QEMU
Product Name: Standard PC (i440FX + PIIX, 1996)

C'est très utile pour les scripts qui peuvent les analyser pour mieux identifier les serveurs... mais si vous utilisez Chef dans votre infrastructure, vous pouvez vérifier l'attribut node Virtualization -> system dans le serveur chef .

1voto

Phil Points 1222

Les choses ont quelque peu changé au cours des 11 années qui se sont écoulées depuis que cette question a été posée.

Si vous utilisez une distro avec systemd installé (par rapport à la question originale de l'OP, SLES utilise systemd depuis v12), systemd-detect-virt fonctionnera probablement, n'a pas besoin de root, et produit la sortie la plus compatible avec script sans autre manipulation nécessaire :

$ systemd-detect-virt
vmware

0voto

SistemesEz.com

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.

Powered by:

X