
Eu tenho um host Linux executando o Debian 11 e nesse host tenho uma VM Ubuntu 22.04. Dentro dessa VM, quero executar uma VM do Windows 10 usando virtualização aninhada. A VM do Ubuntu é inicializada usando EFI e a virtualização aninhada funciona bem.
Quando a VM do Windows em execução dentro da VM Ubuntu também é inicializada usando EFI, tudo funciona bem, toda a memória RAM que eu forneço é detectada e utilizável, e a VM tem um bom desempenho, então a virtualização aninhada funciona bem.
Meu problema é que os instantâneos (ainda) não são suportados no vibvirt ao usar EFI, então tenho que usar o BIOS. Porém, quando mudo a VM para BIOS, tudo funciona bem, exceto o fato de que agora o convidado vê apenas 2 GB de RAM. Eu tentei inicializar o Linux e o memtest naquela VM e ambos veem apenas 2 GB. Tentei criar novas VMs e elas também exibem exatamente o mesmo comportamento (funciona bem quando inicializadas em EFI, mas não em BIOS)
Copiei o disco da VM e a configuração 1:1 para o host e ele detecta todos os 8 GB (ou o que eu configurei) perfeitamente. Portanto, esse problema só aparece durante a execução aninhada e usando BIOS.
Neste ponto, tentei muitas configurações diferentes, mesmo executando comandos qemu super simples, e ainda não consigo quebrar a barreira de 2 GB ao executar aninhados sem EFI por algum motivo.
Existe alguma limitação que eu não conheço?
versões de software (na VM Ubuntu aninhada):
Emulador QEMU versão 7.2.0
libvirtd (libvirt) 9.0.0
Linux 5.19.0-35-generic
Responder1
Sim, há uma limitação ao usar a virtualização aninhada com o modo BIOS. O problema que você está enfrentando provavelmente se deve ao fato de que o firmware do BIOS na máquina virtual não é capaz de expor mais de 2 GB de RAM ao sistema operacional convidado.
Esta é uma limitação conhecida da virtualização baseada em BIOS e é causada pela forma como o firmware do BIOS mapeia a memória. Por outro lado, o firmware UEFI usado em máquinas virtuais modernas suporta E/S mapeada em memória, o que permite que o sistema operacional convidado acesse mais memória.
Para contornar essa limitação, você pode continuar usando a virtualização aninhada com o modo EFI ou passar a usar uma tecnologia de virtualização diferente que ofereça suporte a snapshots com o modo EFI. Como alternativa, você pode tentar ajustar as configurações de memória no firmware do BIOS da máquina virtual, embora isso nem sempre seja possível ou eficaz.
Em resumo, a limitação da virtualização baseada em BIOS com virtualização aninhada é que o sistema operacional convidado só poderá acessar até 2 GB de RAM.