GNU/Linux >> Tutoriels Linux >  >> Linux

Un moyen simple de déterminer la technologie de virtualisation

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

Si le conteneur exécute systemd :

$ systemd-detect-virt
lxc

Sur KVM par exemple, cela renvoie :

kvm

et sur un host non virtualisé :

none

Voir aussi :

  • systemd-detect-virt(1)
  • Détecter la virtualisation

Méthode souhaitable

lshw

Cette commande produit la sortie suivante sur divers invités de technologie VM.

$ sudo lshw -class system

Sortie

  • KVM

    mungr                     
        description: Computer
        product: KVM
        vendor: Red Hat
        width: 64 bits
        capabilities: smbios-2.4 dmi-2.4 vsyscall64 vsyscall32
    
  • Boîte virtuelle

    fedora17                  
        description: Computer
        product: VirtualBox ()
        vendor: innotek GmbH
        version: 1.2
        serial: 0
        width: 64 bits
        capabilities: smbios-2.5 dmi-2.5 vsyscall32
    
  • VMWare

    partedmagic
        description: Computer
        product: VMware Virtual Platform ()
        vendor: VMware, Inc.
        version: None
        serial: VMware-56 4d 94 a0 53 e3 f3 c6-f9 a6 eb 1a 89 70 04 57
        width: 32 bits
        capabilities: smbios-2.4 dmi-2.4 smp-1.4 smp
    

Script

Si vous êtes sur Ubuntu/Debian, il y a le paquet open-vm-tools peut être installé. Il fournit vmware-checkvm . Il ne renvoie qu'un chiffre. Un 0 signifie que c'est une VM, un 1 signifie qu'il s'agit d'un système physique.

Méthodes moins souhaitables

Si c'est KVM, le /proc/scsi/scsi et ethtool les options s'affichent comme suit :

SCSI

$ cat /proc/scsi/scsi 
Attached devices:
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: QEMU     Model: QEMU DVD-ROM     Rev: 0.9.
  Type:   CD-ROM                           ANSI  SCSI revision: 05

ethtool

$ ethtool -i eth0
driver: virtio_net
version: 
firmware-version: 
bus-info: virtio0
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

Le virtio_net fait partie de KVM. Le /proc/scsi/scsi vous indique que vous êtes dans une machine virtuelle et que vous êtes très probablement KVM.

dmesg

En utilisant les commandes suivantes grep passant par dmesg journal.

$ sudo dmesg | grep -i virtual
  • VMWare

    VMware vmxnet virtual NIC driver
     Vendor: VMware    Model: Virtual disk      Rev: 1.0 
    hda: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive
    
  • QEmu ou KVM

    Si le "-cpu host" option n'a pas été utilisée, QEmu et KVM s'identifieront comme :

    CPU: AMD QEMU Virtual CPU version 0.9.1 stepping 03
    

    sinon, les informations du processeur de l'hôte seront utilisées à la fois dans dmesg , ou en /proc/cpuinfo . Cependant, vous devriez voir quelque chose comme :

    [    0.000000] Booting paravirtualized kernel on KVM
    

    Dans les nouveaux noyaux qui comprennent qu'ils fonctionnent sous paravirtualisation.

  • Microsoft VirtualPC

    hda: Virtual HD, ATA DISK drive
    hdc: Virtual CD, ATAPI CD/DVD-ROM drive
    
  • Xfr

    $ sudo dmesg | grep -i xen
    Xen virtual console successfully installed as tty1
    
  • Virtuozzo

    # method #1
    $ sudo dmesg
    (returns no output)
    
    # method #2
    $ sudo cat /var/log/dmesg
    (returns no output)
    
    # method #3
    $ sudo ls -al /proc/vz
    veinfo  veinfo_redir  veredir  vestat  vzaquota  vzdata
    

Références

  • dmo.ca/ blog/ Comment détecter la virtualisation

Linux
  1. Comment configurer rapidement un serveur KVM

  2. Installation facile de VMware Ubuntu 21.10 (vidéo)

  3. Un moyen facile de vérifier le test de vitesse SSH

  4. Façon de déterminer la valeur optimale du paramètre Bs à Dd ?

  5. N moyen facile de remplacer les fichiers en double par des liens physiques ?

Comment savoir si un processeur prend en charge la technologie de virtualisation (VT)

Un moyen facile d'installer FortiClient VPN [Astuce rapide]

Un moyen facile d'installer l'environnement d'édition Kile LaTeX

Un moyen facile d'installer GIT (Guide complet)

Comment installer Ubuntu 18.04 Bionic Beaver en toute simplicité !

Fondamentaux de la virtualisation VMware – VMware Server et VMware ESXi