Este é o comando virt-o que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
virt-what - detectar se estamos executando em uma máquina virtual
RESUMO
virt-what [opções]
DESCRIÇÃO
"virt-what" é um script de shell que pode ser usado para detectar se o programa está sendo executado em um
máquina virtual.
O programa imprime uma lista de "fatos" sobre a máquina virtual, derivados de
heurísticas. Um fato é impresso por linha.
Se nada for impresso e o script sair com o código 0 (sem erro), isso pode significar ou
que o programa está sendo executado em bare-metal or o programa está sendo executado dentro de um tipo de
máquina virtual que não conhecemos ou não podemos detectar.
FATOS
hiperv
Este é o hipervisor do Microsoft Hyper-V.
Status: confirmado por RWMJ
ibm_systemz
Este é um sistema de particionamento de hardware IBM SystemZ (ou outro S / 390). Adicional
os fatos listados abaixo também podem ser impressos.
ibm_systemz-direct
Este é o Linux rodando diretamente em um sistema de particionamento de hardware IBM SystemZ.
Espera-se que seja uma configuração altamente incomum - se você ver este resultado,
deve tratá-lo com suspeita.
Status: não confirmado
ibm_systemz-par
Este é o Linux rodando diretamente em um LPAR em um particionamento de hardware IBM SystemZ
sistema.
Status: não confirmado
ibm_systemz-zvm
Este é um convidado z / VM em execução em um LPAR em um particionamento de hardware IBM SystemZ
sistema.
Status: confirmado por RWMJ usando um convidado Fedora rodando em z / VM
linux_vserver
Isso é impresso para compatibilidade com versões anteriores de virt-o que não poderia
distinguir entre um convidado e um host de contêiner Linux VServer.
linux_vserver-convidado
Este processo está sendo executado em um contêiner Linux VServer.
Status: contribuição de BarXX Metin
linux_vserver-host
Este processo está sendo executado como o host Linux VServer (VxID 0).
Status: contribuição de BarXX Metin e Elan Ruusamaee
lxc Este processo está sendo executado em um contêiner Linux LXC.
Status: contribuição de Marc Fournier
Kvm Este convidado está sendo executado no hipervisor KVM usando aceleração de hardware.
Observe que se o hipervisor estiver usando aceleração de software, você deve não Veja isso,
mas deve ver o fato "qemu" em vez disso.
Status: confirmado por RWMJ.
openvz
O convidado parece estar executando dentro de um contêiner OpenVZ ou Virtuozzo.
Status: contribuição de Evgeniy Sokolov
paralelos
O convidado está sendo executado dentro da Plataforma Virtual Parallels (Parallels Desktop, Parallels
Servidor).
Status: contribuição de Justin Clift
powervm_lx86
O convidado está sendo executado dentro do emulador IBM PowerVM Lx86 Linux / x86.
Status: dados fornecidos originalmente por Jeffrey Scheel, confirmados por Yufang Zhang e RWMJ
qemu
Este é o hipervisor QEMU usando emulação de software.
Observe que para convidados KVM (acelerado por hardware), você deve não Veja isso.
Status: confirmado por RWMJ.
uml Este é um convidado do User-Mode Linux (UML).
Status: contribuição de Laurent Leonard
virt
Algum tipo de virtualização parece estar presente, mas não temos certeza do que seja. No
alguns casos muito raros em que sabemos que a virtualização é difícil de detectar, nós
tentará um ataque de cronometragem para ver se certas instruções da máquina estão rodando muito mais
lentamente do que deveriam, o que indicaria virtualização. Neste caso, o
fato genérico "virt" é impresso.
virtude
Este é o sistema de particionamento de hardware Hitachi Virtualization Manager (HVM) Virtage.
Status: dados fornecidos por Bhavna Sarathy, não confirmados
virtualbox
Este é um convidado do VirtualBox.
Status: contribuição de Laurent Leonard
computador virtual
O convidado parece estar em execução no Microsoft VirtualPC.
Status: não confirmado
vmware
O convidado parece estar em execução no hipervisor VMware.
Status: confirmado por RWMJ
Xen O convidado parece estar em execução no hipervisor Xen.
Status: confirmado por RWMJ
xen-dom0
Este é o Xen dom0 (domínio privilegiado).
Status: confirmado por RWMJ
xen-domU
Este é um Xen domU (domínio de convidado paravirtualizado).
Status: confirmado por RWMJ
xen-hvm
Este é um convidado Xen totalmente virtualizado (HVM).
Status: confirmado por RWMJ
SAIR STATUS
Os programas que usam ou envolvem "virt-what" devem verificar se o status de saída é 0 antes de
tente analisar a saída do comando.
Um status de saída diferente de zero indica algum erro, por exemplo, uma linha de comando não reconhecida
argumento. Se o status de saída for diferente de zero, os "fatos" de saída (se algum foi impresso)
não pode ser garantido e deve ser ignorado.
O status de saída faz não tem a ver com o fato de o programa estar sendo executado em
baremetal ou em virtualização, nem com detecção gerenciada "virt-what"
"corretamente" (o que é basicamente desconhecido, dada a grande variedade de virtualização
sistemas existentes e que alguns sistemas emulam deliberadamente outros).
CORRENDO VIRT-QUÊ A PARTIR DE OUTROS PROGRAMAS
"virt-what" é projetado para que você possa executá-lo facilmente a partir de outros programas ou envolvê-lo em
uma biblioteca.
Seu programa deve verificar o status de saída (consulte a seção acima).
Algumas linguagens de programação (notavelmente Python: problema 1652) mascaram erroneamente o "SIGPIPE"
sinalizar e não restaurá-lo ao executar subprocessos. "virt-what" é um script de shell
e alguns comandos do shell não funcionam corretamente quando você faz isso. Você pode ver avisos de
"virt-what" semelhante a este:
eco: erro de gravação: tubo quebrado
A solução é definir o manipulador de sinal "SIGPIPE" de volta para "SIG_DFL" antes de executar
"virt-o que".
IMPORTANTE NOTA
Na maioria das vezes, usar este programa é o Wrongs coisa para fazer. Em vez disso, você deve detectar
os recursos específicos que você realmente deseja usar. (Por exemplo, se você quiser emitir
Comandos do hipervisor Xen que você procuraria no arquivo "/ proc / xen / privcmd").
No entanto, as pessoas continuam pedindo isso, então nós fornecemos. Existem alguns usos legítimos:
Ferramenta de relatório de bugs
Se você acha que a virtualização pode afetar a forma como o seu programa é executado, você pode
use "virt-what" para relatar isso em uma ferramenta de relatório de bug.
Ferramentas de exibição e monitoramento de status
Você pode incluir essas informações nos programas de status e monitoramento.
Ajuste do sistema (às vezes)
Você pode usar este programa para ajustar um sistema operacional para que funcione melhor como um sistema virtual
máquina de um hipervisor específico. No entanto, se estiver instalando drivers paravirtualizados,
é melhor verificar os recursos específicos de que seus motoristas precisam (por exemplo, para a presença
de dispositivos PCI).
Use virt-what online usando serviços onworks.net