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.
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
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 .
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
J'aime beaucoup :
hostnamectl status
ou du béton :
hostnamectl status | grep "Chassis:"
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
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.