J'ai un accès en ligne de commande à une machine Linux qui peut ou non être virtualisée. Je souhaite déterminer sur quel type de technologie de virtualisation il s'exécute, le cas échéant (VMWare, VirtualBox, KVM, OpenVZ, Xen, ). Ce n'est pas un environnement hostile :je n'essaie pas de travailler contre une machine virtuelle qui essaie de se déguiser, je diagnostique un serveur floconneux que je connais peu.
Plus précisément, j'aide quelqu'un à diagnostiquer le problème, je ne suis pas assis à la barre. Je dois donc transmettre des instructions telles que "copier-coller cette commande" et non "faire le tour de /proc
quelque part". Idéalement, ce serait quelque chose comme lshw
:une commande facilement installable (si elle n'est pas préinstallée) qui fait le tour et imprime les informations pertinentes.
Quel est le moyen le plus simple de déterminer de quelle technologie de virtualisation ce système peut être l'invité ? J'apprécierais que les propositions mentionnent quelles technologies (y compris le matériel nu) peuvent être détectées de manière concluante et lesquelles peuvent être définitivement éliminées. Je suis surtout intéressé par Linux, mais si cela fonctionne aussi pour d'autres unix, c'est bien.
Réponse acceptée :
dmidecode -s system-product-name
J'ai testé sur Vmware Workstation, VirtualBox, QEMU avec KVM, QEMU autonome avec Ubuntu comme système d'exploitation invité. D'autres ont ajouté des plates-formes supplémentaires qu'ils connaissent également.
Technologies de virtualisation
-
Poste de travail VMware
[email protected]:~# dmidecode -s system-product-name VMware Virtual Platform
-
Boîte virtuelle
[email protected]:~# dmidecode -s system-product-name VirtualBox
-
Qemu avec KVM
[email protected]:~# dmidecode -s system-product-name KVM
-
Qemu (émulé)
[email protected]:~# dmidecode -s system-product-name Bochs
-
Microsoft VirtualPC
[email protected]:~# dmidecode | egrep -i 'manufacturer|product' Manufacturer: Microsoft Corporation Product Name: Virtual Machine
-
Virtuozzo
[email protected]:~# dmidecode /dev/mem: Permission denied
-
Xfr
[email protected]:~# dmidecode | grep -i domU Product Name: HVM domU
Sur le métal nu, cela renvoie une identification du modèle d'ordinateur ou de carte mère.
/dev/disk/by-id
Si vous n'avez pas les droits pour exécuter dmidecode
alors vous pouvez utiliser :
Technologie de virtualisation :QEMU
ls -1 /dev/disk/by-id/
Sortie
[[email protected] ~]# ls -1 /dev/disk/by-id/
ata-QEMU_DVD-ROM_QM00003
ata-QEMU_HARDDISK_QM00001
ata-QEMU_HARDDISK_QM00001-part1
ata-QEMU_HARDDISK_QM00002
ata-QEMU_HARDDISK_QM00002-part1
scsi-SATA_QEMU_HARDDISK_QM00001
scsi-SATA_QEMU_HARDDISK_QM00001-part1
scsi-SATA_QEMU_HARDDISK_QM00002
scsi-SATA_QEMU_HARDDISK_QM00002-part1
Références
- Comment détecter la virtualisation sur dmo.ca