Solution 1 :
hostnamectl
est votre ami (nécessite systemd
).
Quelques exemples :
Ordinateur portable sans aucune virtualisation
$ hostnamectl status
Static hostname: earth.gangs.net
Icon name: computer-laptop
Chassis: laptop
Machine ID: 18a0752e1ccbeef09da51ad17fab1f1b
Boot ID: beefdc99969e4a4a8525ff842b383c62
Operating System: Ubuntu 16.04.2 LTS
Kernel: Linux 4.4.0-66-generic
Architecture: x86-64
Xen
$ hostnamectl status
Static hostname: pluto.gangs.net
Icon name: computer-vm
Chassis: vm
Machine ID: beef39aebbf8ba220ed0438b54497609
Boot ID: beefc71e97ed48dbb436a470fe1920e1
Virtualization: xen
Operating System: Ubuntu 16.04.2 LTS
Kernel: Linux 3.13.0-37-generic
Architecture: x86-64
OpenVZ
$ hostnamectl status
Static hostname: mars.gangs.net
Icon name: computer-container
Chassis: container
Machine ID: 55296cb0566a4aaca10b8e3a4b28beef
Boot ID: 1bb259b0eb064d9eb8a22d112211beef
Virtualization: openvz
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 2.6.32-042stab120.16
Architecture: x86-64
KVM
$ hostnamectl status
Static hostname: mercury.gangs.net
Icon name: computer-vm
Chassis: vm
Machine ID: beeffefc50ae499881b024c25895ec86
Boot ID: beef9c7662a240b3b3b04cef3d1518f0
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-514.10.2.el7.x86_64
Architecture: x86-64
Solution 2 :
À moins que l'hôte VM ne vous mente, cela peut généralement être déterminé en inspectant le "matériel" que l'invité VM voit.
Le plus simple est probablement d'utiliser un programme comme virt-what, qui fera l'analyse pour vous. Ici, je suppose aveuglément que vous utilisez une sorte de distribution basée sur Linux.
Il peut également être utile de jeter un œil au facteur de la marionnette, qui utilise également des techniques similaires pour déterminer dans quel type d'environnement de machine virtuelle il s'exécute.
Ou pourriez-vous demander à qui vous louez le VPS ? :-)
Solution 3 :
Utilisez le virt-what
pour déterminer le type de technologie de virtualisation utilisée par le système.
Voir :http://people.redhat.com/~rjones/virt-what/
Solution 4 :
Systemd inclut systemd-detect-virt
Solution 5 :
Debian est livré avec ce petit paquet pour détecter le type de virtualisation :
$ sudo apt-get install virt-what
$ virt-what
et un peu plus gros à cause des dépendances Perl :
$ sudo apt-get install imvirt
$ imvirt