Questo è il comando virt-cosa che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
virt-what - rileva se stiamo eseguendo in una macchina virtuale
SOMMARIO
virtù-cosa [opzioni]
DESCRIZIONE
"virt-what" è uno script di shell che può essere utilizzato per rilevare se il programma è in esecuzione in a
macchina virtuale.
Il programma stampa un elenco di "fatti" sulla macchina virtuale, derivato da
euristico. Viene stampato un fatto per riga.
Se non viene stampato nulla e lo script esce con il codice 0 (nessun errore), può significare o
che il programma è in esecuzione su bare-metal or il programma è in esecuzione all'interno di un tipo di
macchina virtuale che non conosciamo o non possiamo rilevare.
FATTI
ipervelocità
Questo è l'hypervisor Microsoft Hyper-V.
Stato: confermato da RWMJ
ibm_systemz
Questo è un sistema di partizionamento hardware IBM SystemZ (o altro S/390). Aggiuntivo
possono essere stampati anche i fatti elencati di seguito.
ibm_systemz-direct
Questo è Linux in esecuzione direttamente su un sistema di partizionamento hardware IBM SystemZ.
Questa dovrebbe essere una configurazione molto insolita - se vedi questo risultato tu
dovrebbe trattarlo con sospetto.
Stato: non confermato
ibm_systemz-lpar
Questo è Linux in esecuzione direttamente su una LPAR su un partizionamento hardware IBM SystemZ
.
Stato: non confermato
ibm_systemz-zvm
Questo è un guest z/VM in esecuzione in una LPAR su un partizionamento hardware IBM SystemZ
.
Stato: confermato da RWMJ utilizzando un guest Fedora in esecuzione in z/VM
linux_vserver
Questo è stampato per compatibilità con le versioni precedenti di virt-cosa che non poteva
distinguere tra un guest e un host del contenitore VServer Linux.
linux_vserver-guest
Questo processo è in esecuzione in un container Linux VServer.
Stato: contributo di BarXX Metin
linux_vserver-host
Questo processo è in esecuzione come host Linux VServer (VxID 0).
Stato: contributo di BarXX Metin e Elan Ruusamaee
LXC Questo processo è in esecuzione in un contenitore Linux LXC.
Stato: contributo di Marc Fournier
kvm Questo guest è in esecuzione sull'hypervisor KVM utilizzando l'accelerazione hardware.
Nota che se l'hypervisor utilizza l'accelerazione software dovresti non è un guarda questo,
ma dovrebbe invece vedere il fatto "qemu".
Stato: confermato da RWMJ.
openvz
Il guest sembra essere in esecuzione all'interno di un contenitore OpenVZ o Virtuozzo.
Stato: contributo di Evgeniy Sokolov
paralleli
Il guest è in esecuzione all'interno di Parallels Virtual Platform (Parallels Desktop, Parallels
Server).
Stato: contributo di Justin Clift
powervm_lx86
Il guest è in esecuzione all'interno dell'emulatore IBM PowerVM Lx86 Linux/x86.
Stato: dati forniti originariamente da Jeffrey Scheel, confermati da Yufang Zhang e RWMJ
whoa
Questo è l'hypervisor QEMU che utilizza l'emulazione software.
Nota che per gli ospiti KVM (con accelerazione hardware) dovresti non è un guarda questo.
Stato: confermato da RWMJ.
UML Questo è un guest Linux in modalità utente (UML).
Stato: contributo di Laurent Leonard
virt
Una sorta di virtualizzazione sembra essere presente, ma non siamo sicuri di cosa sia. In
alcuni rarissimi casi limite in cui sappiamo che la virtualizzazione è difficile da rilevare, noi
proverà un attacco di temporizzazione per vedere se alcune istruzioni della macchina funzionano molto di più
lentamente di quanto dovrebbero essere, il che indicherebbe la virtualizzazione. In questo caso, il
viene stampato il fatto generico "virt".
vergine
Questo è il sistema di partizionamento hardware Virtage di Hitachi Virtualization Manager (HVM).
Stato: dati forniti da Bhavna Sarathy, non confermati
virtualbox
Questo è un ospite di VirtualBox.
Stato: contributo di Laurent Leonard
pc virtuale
Il guest sembra essere in esecuzione su Microsoft VirtualPC.
Stato: non confermato
vmware
Il guest sembra essere in esecuzione sull'hypervisor VMware.
Stato: confermato da RWMJ
Xen Il guest sembra essere in esecuzione sull'hypervisor Xen.
Stato: confermato da RWMJ
xen-dom0
Questo è lo Xen dom0 (dominio privilegiato).
Stato: confermato da RWMJ
xen-domU
Questo è un Xen domU (dominio ospite paravirtualizzato).
Stato: confermato da RWMJ
xen-hvm
Questo è un guest Xen completamente virtualizzato (HVM).
Stato: confermato da RWMJ
EXIT STATUS
I programmi che usano o avvolgono "virt-what" dovrebbero controllare che lo stato di uscita sia 0 prima di farlo
tentare di analizzare l'output del comando.
Uno stato di uscita diverso da zero indica un errore, ad esempio una riga di comando non riconosciuta
discussione. Se lo stato di uscita è diverso da zero, l'output "fatti" (se ne sono stati stampati)
non può essere garantito e dovrebbe essere ignorato.
Lo stato di uscita lo fa non è un avere a che fare con il fatto che il programma sia in esecuzione su
baremetal o in virtualizzazione, né con il rilevamento gestito "virt-what"
"correttamente" (che è sostanzialmente inconoscibile data la grande varietà di virtualizzazione
sistemi esistenti e che alcuni sistemi emulino deliberatamente altri).
JOGGING vs RUNNING VIRT-COSA? DA ALTRO PROGRAMMI
"virt-what" è progettato in modo che tu possa facilmente eseguirlo da altri programmi o avvolgerlo in
una biblioteca.
Il tuo programma dovrebbe controllare lo stato di uscita (vedi la sezione sopra).
Alcuni linguaggi di programmazione (in particolare Python: problema 1652) mascherano erroneamente il "SIGPIPE"
segnale e non ripristinarlo durante l'esecuzione di sottoprocessi. "virt-what" è uno script di shell
e alcuni comandi della shell non funzionano correttamente quando lo fai. Potresti vedere avvisi da
"virt-cosa" simile a questo:
echo: errore di scrittura: tubo rotto
La soluzione è reimpostare il gestore del segnale "SIGPIPE" su "SIG_DFL" prima dell'esecuzione
"virt-cosa".
IMPORTANTE NOTA
La maggior parte delle volte, l'utilizzo di questo programma è il Wrongs cose da fare. Invece dovresti rilevare
le funzionalità specifiche che si desidera effettivamente utilizzare. (Ad esempio, se volessi emettere
Comandi dell'hypervisor Xen che dovresti cercare il file "/proc/xen/privcmd").
Tuttavia le persone continuano a chiederlo, quindi lo forniamo. Ci sono alcuni usi legittimi:
Strumento di segnalazione dei bug
Se pensi che la virtualizzazione possa influenzare il modo in cui viene eseguito il tuo programma, allora potresti
usa "virt-what" per segnalarlo in uno strumento di segnalazione dei bug.
Visualizzazione dello stato e strumenti di monitoraggio
È possibile includere queste informazioni nei programmi di stato e monitoraggio.
Ottimizzazione del sistema (a volte)
Potresti usare questo programma per mettere a punto un sistema operativo in modo che funzioni meglio come virtuale
macchina di un particolare hypervisor. Tuttavia, se si installano driver paravirtualizzati,
è meglio verificare le caratteristiche specifiche di cui hanno bisogno i tuoi autisti (es. per la presenza
di dispositivi PCI).
Usa virt-what online utilizzando i servizi onworks.net