in

Falha na libvirt para detectar OVMF/UEFI no Arch

Falha na libvirt para detectar OVMF/UEFI no Arch
Falha na libvirt para detectar OVMF/UEFI no Arch

Nesse tutorial vou demonstrar uma falha na libvirt para detectar OVMF/UEFI no Arch Linux com qemu dentro do virt-manager.

Falha na libvirt para detectar OVMF/UEFI no Arch
Virt-Manager

Ao tentar iniciar uma VM com o virt-manager com UEFI, que é um sistema de boot muito usado pelo Windows, me deparei com um erro.

Então utilizei de artifícios descritos nas duas páginas para tentar iniciar a minha VM com o UEFI habilitado.

Antes de mais nada, visite a página que explica como instalar em UEFI pelo virt manager: https://wiki.archlinux.org/index.php/Libvirt#UEFI_Support

Da mesma forma, veja a página que reporta o bug no virt-manager: https://bugs.archlinux.org/task/64175

Para habilitar o UEFI na VM é necessário que você crie a VM de acordo com as seguintes imagens. É preciso clicar no ícone para Personalizar configuração antes da instalação.

Falha na libvirt para detectar OVMF/UEFI no Arch
Personalizar configuração antes da instalação

Logo depois de clicar em concluir, irá abrir uma nova janela.

No spinner referente a firmware você irá encontrar a opção de UEFI não sendo clicável.

Spinner referente a firmware
Spinner referente a firmware

Então, vou mostrar a solução que encontrei para que a UEFI funcione corretamente:

Primeiramente instalei o pacote OVMF com o comando:

pacman -S ovmf

Adicionei a seguinte linha como descrito na wiki no arquivo /etc/libvirt/qemu.conf

sudo nano /etc/libvirt/qemu.conf

nvram = [
    "/usr/share/ovmf/x64/OVMF_CODE.fd:/usr/share/ovmf/x64/OVMF_VARS.fd"
]

Agora vamos criar o arquivo /usr/share/qemu/firmware/60-ovmf-x86_64.json que foi descrito assim na página do bug com o comando:

sudo nano /usr/share/qemu/firmware/60-ovmf-x86_64.json

E inserir o seguinte conteúdo:

{
“description”: “UEFI OVMF firmware for x86_64”,
“interface-types”: [
“uefi”
],
“mapping”: {
“device”: “flash”,
“executable”: {
“filename”: “/usr/share/ovmf/x64/OVMF_CODE.fd”,
“format”: “raw”
},
“nvram-template”: {
“filename”: “/usr/share/ovmf/x64/OVMF_VARS.fd”,
“format”: “raw”
}
},
“targets”: [
{
“architecture”: “x86_64”,
“machines”: [
“pc-i440fx-4.2”,
“pc-q35-*”
]
}
],
“features”: [
“acpi-s3”,
“amd-sev”,
“verbose-dynamic”
],
“tags”: [
]
}

Logo após adicionar as linhas nos arquivos reiniciei o serviço da libvirtd com o comando:

sudo systemctl restart libvirtd

Porém, mesmo assim, não obtive sucesso. Então, veja a solução.

Criei uma nova VM da mesma forma e na parte onde modifica as configurações fiz o seguinte.

Editei o XML da VM e modifiquei as seguintes linhas:

<os>
<type arch=”x86_64″ machine=”pc”>hvm</type>
<loader readonly=”yes” type=”pflash”>/usr/share/ovmf/x64/OVMF_CODE.fd</loader>
<boot dev=”hd”/>
</os>

Elas aparecem na imagem a seguir:

XML da VM.
XML da VM.

Trocando as pelas linhas:

<os>
<type arch=”x86_64″ machine=”pc-i440fx-4.2″>hvm</type>
<loader readonly=”yes” type=”pflash”>/usr/share/ovmf/x64/OVMF_CODE.fd</loader>
<nvram template=”/usr/share/ovmf/x64/OVMF_VARS.fd”>/Pasta_que_esta_salva_a_VM/arch-uefi_VARS.fd</nvram>
<boot dev=”hd”/>
</os>

Troque o diretório do VARS onde está a parte da nvram para o diretório onde você salvou sua VM.

No meu caso ficou como a imagem a seguir:

XML da VM modificado.
XML da VM modificado.

Agora com as mudanças feitas apenas cliquei em Iniciar instalação e tudo ocorreu bem como mostra na imagem a seguir.

UEFI funcionando.
UEFI funcionando.

Enfim, espero poder ter ajudado com mais este tutorial sobre falha na libvirt para detectar OVMF/UEFI no Arch Linux.

Escrito por Rodrigo Leutz

Usuário do Linux a mais de 20 anos.
Desenvolvedor Web e Android ( Kotlin e Java ).
Membro da equipe de suporte do sempreupdate.

Canonical lança atualização do kernel Linux para todas as versões suportadas do Ubuntu

Canonical lança atualização do kernel Linux para todas as versões suportadas do Ubuntu

Como saber se meu site foi hackeado ?

Como saber se meu site foi hackeado ?