como descobrir se está sendo executado dentro do convidado KVM

Respostas:

11

Grep dmesg, deve haver pelo menos uma linha contendo kvm. Nas minhas máquinas:

[    0.000000] kvm-clock: cpu 0, msr 0:5dd801, boot clock
[    0.000000] kvm-clock: cpu 0, msr 0:1023801, primary cpu clock

Como alternativa /proc/cpuinfo, ele contém uma linha:

model name : QEMU Virtual CPU version 0.9.1

Mas, o problema é: Você não pode ter certeza de que é um convidado KVM (em cima do QEMU) ou apenas um convidado QEMU.

theomega
fonte
A fonte de relógio kvm-clock pode não estar presente ou desativada por motivos de estabilidade.
sendmoreinfo
2
Você pode adicionar dmidecodeà lista de maneiras que podem ser exibidas se você estiver executando virtualizado; ele funciona bem com o VMWare.
precisa
7

Você pode verificar se o imvirt ou virt-what disponível para várias distribuições Linux, incluindo o Ubuntu, pode ajudá-lo.

Agora não
fonte
1
Na minha experiência imvirté mais preciso.
bahamat
3

As versões atuais lscputambém mostram se um hypervisor é detectado:

# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             2
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 23
Model name:            Intel Core 2 Duo P9xxx (Penryn Class Core 2)
Stepping:              3
CPU MHz:               2659.936
BogoMIPS:              5319.87
Hypervisor vendor:     KVM
Virtualization type:   full
...
Gargravarr
fonte
0

Outra possibilidade é dmidecode -s 'system-product-name'

[samveen@vm1 ~]$ sudo dmidecode -s 'system-product-name'
KVM
Samveen
fonte
Não trabalhar com esta Ubuntu 18.04 no Ubuntu 18.04 configuração: askubuntu.com/revisions/1046792/15 , ele só saída: Standard PC (i440FX + PIIX , 1996).
Ciro Santilli escreveu:
1
@CiroSantilli 法轮功 改造 中心 六四 事件 法轮功 Verifique também os outros campos de informações do DMI. Eu não tenho acesso a um host KVM baseado no Ubuntu para testar. Na maioria dos casos, o system-product-nameidentificador fornece a resposta esperada, mesmo em casos como VirtualBoxe VMWare.
Samveen 12/12/18