GNU/Linux >> Tutoriels Linux >  >> Linux

Comment vérifier si un système Linux est une machine physique ou virtuelle

En tant qu'administrateur Linux, vous vous demandez peut-être parfois si vous travaillez sur une machine physique ou virtuelle. La plupart du temps, vous accéderez et gérerez vos serveurs à distance. Vous n'avez peut-être pas toujours un accès physique à vos serveurs et vous ne savez peut-être même pas où se trouve le serveur. Cependant, il est possible de vérifier si votre système Linux est une machine physique ou virtuelle à l'aide de quelques utilitaires Linux. Ce guide répertorie toutes les manières possibles de vérifier si le système Linux sur lequel vous travaillez est un serveur physique ou un serveur virtuel.

Vérifiez si un système Linux est une machine physique ou virtuelle

Il peut y avoir plusieurs façons de déterminer si un système est physique ou virtuel. Je connais les méthodes suivantes à l'heure actuelle. Je mettrai à jour si je trouve d'autres moyens dans les jours à venir.

Méthode 1 - Utilisation de l'utilitaire Dmidecode

Le moyen le plus simple de savoir si nous travaillons sur une machine virtuelle ou physique consiste à utiliser dmidecode  utilitaire. Dmidecode, décodeur de table DMI, est utilisé pour trouver les composants matériels de votre système, ainsi que d'autres informations utiles telles que les numéros de série et la révision du BIOS.

Dmidecode est préinstallé avec la plupart des distributions Linux. Au cas où, s'il n'est pas déjà installé, vous pouvez l'installer à l'aide du gestionnaire de packages de votre distribution. Supposons, par exemple, que la commande suivante installe dmidecode dans les systèmes basés sur DEB tels que Ubuntu, Linux Mint.

$ sudo apt-get install dmidecode

Après avoir installé Dmidecode, exécutez la commande suivante pour savoir si votre système est une machine physique ou virtuelle :

$ sudo dmidecode -s system-manufacturer

S'il s'agit d'un système physique, vous obtiendrez une sortie comme ci-dessous.

Dell Inc.

S'il s'agit d'un système virtuel créé avec Virtualbox, vous obtiendrez le résultat suivant :

innotek GmbH

Pour ceux qui se demandent,innotek est une société de logiciels basée en Allemagne qui développe un logiciel de virtualisation de PC appelé VirtualBox .

S'il s'agit d'un système virtuel créé avec KVM/QEMU, la sortie sera :

QEMU

Comme vous le voyez dans la sortie ci-dessus, s'il s'agit d'un système physique, dmidecode affichera le nom du fabricant (c'est-à-dire Dell Inc.). S'il s'agit d'un système virtuel, il affichera le logiciel/la technologie de virtualisation (c'est-à-dire VirtualBox ou QEMU).

Vous pouvez également utiliser cette commande pour vérifier s'il s'agit d'un système physique ou virtuel.

$ sudo dmidecode | grep Product

Exemple de résultat :

[Physical system]

Product Name: 01HXXJ
Product Name: Inspiron N5050

[Virtual system on VirtualBox]

Product Name: VirtualBox
Product Name: VirtualBox

[Virtual system on KVM/QEMU]

Product Name: Standard PC (Q35 + ICH9, 2009)

Une autre commande pour savoir s'il s'agit d'un système physique ou virtuel est :

$ sudo dmidecode -s system-product-name

Exemple de résultat :

[Physical system]

Inspiron N5050

[Virtual system on VirtualBox]

VirtualBox

[Virtual system on KVM/QEMU]

Standard PC (Q35 + ICH9, 2009)

Encore une autre commande dmidecode pour trouver le type du système distant est :

$ sudo dmidecode | egrep -i 'manufacturer|product'

Exemple de résultat :

[Physical system]

 Manufacturer: Intel 
 Manufacturer: Sanyo 
 Manufacturer: Not Specified
 Manufacturer: Dell Inc.
 Product Name: 01HXXJ
 Manufacturer: Dell Inc.
 Manufacturer: Dell Inc.
 Product Name: Inspiron N5050
 Manufacturer: 014F

[Virtual system on VirtualBox]

 Manufacturer: innotek GmbH
 Product Name: VirtualBox
 Manufacturer: Oracle Corporation
 Product Name: VirtualBox
 Manufacturer: Oracle Corporation

[Virtual system on KVM/QEMU]

Manufacturer: QEMU
Product Name: Standard PC (Q35 + ICH9, 2009)
Manufacturer: QEMU
Manufacturer: QEMU
Manufacturer: QEMU
Manufacturer: QEMU

Et, une autre commande dmidecode est d'atteindre le même objectif :

$ sudo dmidecode | egrep -i 'vendor'

Exemple de résultat :

[Physical system]

Vendor: Dell Inc.

[Virtual system on VirtualBox]

Vendor: innotek GmbH

[Virtual system on KVM/QEMU]

Vendor: EFI Development Kit II / OVMF

Méthode 2 - Utilisation de l'utilitaire Facter

Facteur est un utilitaire de ligne de commande pour collecter et afficher les informations d'un système. Contrairement à Dmidecode, Facter n'est pas pré-installé par défaut. Vous devrez peut-être l'installer comme indiqué ci-dessous en fonction de la distribution Linux que vous utilisez.

Sous Arch Linux, Manjaro Linux :

$ sudo pacman -S facter

Dans Fedora :

$ sudo dnf install facter

Dans CentOS, RHEL :

$ sudo yum install epel-release
$ sudo yum installl facter

Dans openSUSE :

$ sudo zypper install facter

Une fois le facteur installé, exécutez la commande suivante pour vérifier si le système est une machine physique ou virtuelle :

$ facter 2> /dev/null | grep virtual

Si cette commande ne fonctionne pas, essayez avec les privilèges sudo :

$ sudo facter 2> /dev/null | grep virtual

Exemple de résultat :

[Physical system]

is_virtual => false
virtual => physical

[Virtual system on VirtualBox and KVM/QEMU]

is_virtual => true
virtual => kvm

Vous pouvez également utiliser la commande suivante :

$ facter virtual

Ou,

$ sudo facter virtual

S'il s'agit d'une machine physique, la sortie sera :

physical

S'il s'agit d'une machine virtuelle, vous verrez une sortie comme ci-dessous.

kvm

Méthode 3 - Utilisation de l'utilitaire lshw

Le lshw est un petit utilitaire de ligne de commande qui affiche les informations matérielles détaillées d'un système de type Unix. Il affiche tous les détails du matériel, y compris la configuration de la mémoire, la version du micrologiciel, la configuration de la carte mère, la version et la vitesse du processeur, la configuration du cache, la vitesse du bus, etc.

Certaines distributions Linux sont préinstallées avec lshw. S'il n'est pas déjà installé, vous pouvez l'installer comme indiqué ci-dessous.

Sous Arch Linux et dérivés :

$ sudo pacman -S lshw

Dans Fedora :

$ sudo dnf install lshw

Dans RHEL et dérivés tels que CentOS, Linux scientifique :

$ sudo yum install epel-release
$ sudo yum install lshw

Sous Debian, Ubuntu, Linux Mint :

$ sudo apt-get install lshw

Dans SUSE/openSUSE :

$ sudo zypper in lshw

Après avoir installé lshw, exécutez la commande suivante pour savoir si votre système est physique ou virtuel :

$ sudo lshw -class system

Exemple de résultat :

[Physical system]

sk 
 description: Portable Computer
 product: Inspiron N5050 (To be filled by O.E.M.)
 vendor: Dell Inc.
 version: Not Specified
 serial: JSQ9PR1
 width: 4294967295 bits
 capabilities: smbios-2.6 dmi-2.6 smp vsyscall32
 configuration: boot=normal chassis=portable sku=To be filled by O.E.M. uuid=44454C4C-5300-1051-8039-CAC04F505231

[Virtual system on VirtualBox]

ubuntuserver 
 description: Computer
 product: VirtualBox
 vendor: innotek GmbH
 version: 1.2
 serial: 0
 width: 64 bits
 capabilities: smbios-2.5 dmi-2.5 vsyscall32
 configuration: family=Virtual Machine uuid=78B58916-4074-42E2-860F-7CAF39B5E6F5

[Virtual system on KVM/QEMU]

centos8uefi.ostechnix.lan   
    description: Computer
    product: Standard PC (Q35 + ICH9, 2009)
    vendor: QEMU
    version: pc-q35-4.2
    width: 64 bits
    capabilities: smbios-2.8 dmi-2.8 smp vsyscall32
    configuration: boot=normal uuid=C40041DE-2E63-094C-8DCF-BBDE29170268
  *-pnp00:00
       product: PnP device PNP0b00
       physical id: 1
       capabilities: pnp
       configuration: driver=rtc_cmos

Suggestion de lecture :

  • Comment trouver les spécifications matérielles sous Linux
  • Comment connaître la RAM maximale prise en charge sous Linux

Méthode 4 - Utilisation de l'utilitaire dmesg

Nous pouvons trouver le type du système en utilisant dmesg utilitaire. dmesg est utilisé pour examiner ou contrôler le tampon circulaire du noyau.

Pour vérifier si votre système Linux est physique ou virtuel, exécutez simplement :

$ sudo dmesg | grep "Hypervisor detected"

Si votre système est physique, vous ne verrez aucune sortie.

Si votre système est une machine virtuelle, vous verrez une sortie comme ci-dessous.

[ 0.000000] Hypervisor detected: KVM

Méthode 5 - Utilisation de la commande hostnamectl

Nous pouvons savoir si notre système est virtuel ou physique en utilisant hostnamectl commande. Il nécessite systemd travailler.

$ hostnamectl status

Ou,

$ hostnamectl

Exemple de résultat :

[Physical system]

Static hostname: sk
 Icon name: computer-laptop
 Chassis: laptop
 Machine ID: 84e3c8e37e114ac9bc9f69689b49cfaa
 Boot ID: 19cf3572e1634e778b5d494d9c1af6e9
 Operating System: Arch Linux
 Kernel: Linux 4.10.13-1-ARCH
 Architecture: x86-64

[Virtual system on VirtualBox]

Static hostname: ubuntuserver
 Icon name: computer-vm
 Chassis: vm
 Machine ID: 2befe86cf8887ba098b509e457554beb
 Boot ID: 8021c02d65dc46a1885afb25dddcf18c
 Virtualization: oracle
 Operating System: Ubuntu 16.04.1 LTS
 Kernel: Linux 4.4.0-78-generic
 Architecture: x86-64

[Virtual system on KVM/QEMU]

Static hostname: centos8uefi.ostechnix.lan
Icon name: computer-vm
Chassis: vm
Machine ID: de4100c4632e4c098dcfbbde29170268
Boot ID: 6136783bb9c241d08c8901aeecc7c30d
Virtualization: kvm
Operating System: CentOS Linux 8 (Core)
CPE OS Name: cpe:/o:centos:centos:8
Kernel: Linux 4.18.0-80.el8.x86_64
Architecture: x86-64

Méthode 6 - Utilisation de systemd-detect-virt

Le systemd-detect-virt L'outil détecte la technologie de virtualisation et peut distinguer la virtualisation complète de la machine de la virtualisation du matériel ou des conteneurs.

Exécutez la commande suivante pour vérifier si le système est physique ou virtuel :

$ systemd-detect-virt

Exemple de résultat :

[Physical machine]

none

[Virtual machine on VirtualBox]

oracle

[Virtual machine on KVM/QEMU]

KVM

Méthode 7 - Utilisation du script virt-what

Le virt-quoi est un petit script shell développé chez Red Hat pour savoir si nous sommes en cours d'exécution dans une machine virtuelle ou une machine physique. virt-what est fourni pour toutes les distributions Linux populaires, telles que RHEL, Fedora, CentOS, Debian, Ubuntu, Arch Linux (AUR).

Dans Arch Linux, vous pouvez l'installer à partir d'AUR en utilisant n'importe quel assistant AUR, par exemple Yay .

$ yay -S virt-what

Dans RHEL, Fedora, CentOS :

$ sudo yum install virt-what

Sur Debian, Ubuntu :

$ sudo apt-get install virt-what

Une fois installé, exécutez la commande suivante pour afficher si votre système est physique ou virtuel :

$ sudo virt-what

Si rien n'est imprimé et que le script se termine avec le code 0 (pas d'erreur), cela signifie que le système est physique ou un type de machine virtuelle que nous ne connaissons pas ou que nous ne pouvons pas détecter.

Si votre système est virtuel, vous verrez une sortie comme ci-dessous.

virtualbox
kvm

Pour plus de détails, consultez la page d'accueil du projet.

  • http://people.redhat.com/~rjones/virt-what/

Méthode 8 - Utilisation du script imvirt

L'imvirt est encore un autre petit perl script qui vous aide à détecter si nous fonctionnons sur une machine virtuelle.

Dans Arch Linux, vous pouvez l'installer à partir d'AUR en utilisant Yay programme d'assistance.

$ yay -S imvirt

Sur Debian, Ubuntu, Linux Mint :

$ sudo apt-get install imvirt

Une fois installé, exécutez la commande suivante pour afficher si votre système est physique ou virtuel :

$ sudo imvirt

Si votre système est physique, la sortie serait :

Physical

si le système est virtuel, vous verrez :

KVM

Pour plus de détails, consultez la page d'accueil du projet.

  • http://micky.ibh.net/~liske/imvirt.html

Lire connexe :

  • Comment vérifier si un système Linux est 32 bits ou 64 bits
  • Comment savoir si un processeur prend en charge la technologie de virtualisation (VT)

Et, c'est tout pour le moment. Si vous connaissez d'autres moyens de savoir si la machine Linux est physique ou virtuelle, faites-le nous savoir dans la section des commentaires. Nous vérifierons et mettrons à jour le guide en conséquence.


Linux
  1. Comment supprimer des machines virtuelles basées sur KVM sur Redhat Linux

  2. Comment vérifier la version du système d'exploitation et de Linux

  3. Comment vérifier si un système Linux est 32 bits ou 64 bits

  4. Vérifier la disponibilité sur le serveur Ubuntu Linux - Comment faire ?

  5. Commande Linux pour savoir si la machine est physique ou virtuelle

Comment vérifier qu'un port est ouvert sur un système Linux distant

Comment vérifier/réparer le système de fichiers Linux au démarrage

Comment vérifier et réparer un système de fichiers dans RHEL Linux

Comment utiliser le système d'exploitation Tails Linux dans la machine virtuelle VirtualBox

Comment vérifier l'historique de redémarrage du système et l'heure de démarrage sous Linux

Comment vérifier la charge de votre serveur dans le système Linux