Ho accesso alla riga di comando a una macchina Linux che può essere virtualizzata o meno. Voglio determinare su quale tipo di tecnologia di virtualizzazione viene eseguita, se presente (VMWare, VirtualBox, KVM, OpenVZ, Xen, ). Questo non è un ambiente ostile:non sto cercando di lavorare contro una VM che sta cercando di mascherarsi, sto diagnosticando un server traballante di cui so poco.
Più precisamente, sto aiutando qualcuno a diagnosticare il problema, non sono seduto al timone. Quindi devo trasmettere istruzioni come "copia-incolla questo comando" e non "curiosare in /proc
in qualche luogo". Idealmente, sarebbe qualcosa come lshw
:un comando facilmente installabile (se non preinstallato) che fa il giro e stampa le informazioni rilevanti.
Qual è il modo più semplice per determinare di quale tecnologia di virtualizzazione può essere ospite questo sistema? Apprezzerei se le proposte menzionassero quali tecnologie (incluso l'hardware nudo) possono essere rilevate in modo definitivo e quali possono essere definitivamente eliminate. Sono principalmente interessato a Linux, ma se funziona anche per altri unice è bello.
Risposta accettata:
dmidecode -s system-product-name
Ho testato su Vmware Workstation, VirtualBox, QEMU con KVM, QEMU standalone con Ubuntu come SO guest. Anche altri hanno aggiunto piattaforme aggiuntive con cui hanno familiarità.
Tecnologie di virtualizzazione
-
VMware Workstation
[email protected]:~# dmidecode -s system-product-name VMware Virtual Platform
-
VirtualBox
[email protected]:~# dmidecode -s system-product-name VirtualBox
-
Qemu con KVM
[email protected]:~# dmidecode -s system-product-name KVM
-
Qemu (emulato)
[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
-
Xen
[email protected]:~# dmidecode | grep -i domU Product Name: HVM domU
Sul metallo nudo, restituisce un'identificazione del modello del computer o della scheda madre.
/dev/disk/by-id
Se non disponi dei diritti per eseguire dmidecode
quindi puoi usare:
Tecnologia di virtualizzazione:QEMU
ls -1 /dev/disk/by-id/
Risultato
[[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
Riferimenti
- Come rilevare la virtualizzazione su dmo.ca