
Estou tentando migrar um convidado KVM de um host Ubuntu 14.04 para outro seguindo as etapasdescrito aqui.
Agora tenho o arquivo "state", a configuração xml e o arquivo qcow2 img em uma única pasta no novo host e certifiquei-me de atualizar a configuração xml para apontar para o novo local do arquivo de imagem qcow2.
Quando tento executar virsh create [guest-id].xml
recebo a seguinte mensagem de erro:
error: internal error: process exited while connecting to monitor:
qemu-system-x86_64: -drive file=/media/stuart/storage2/kvm/dns.technostu.com/dns.technostu.com.img,if=none,id=drive-virtio-disk0,format=raw:
could not open disk image /media/stuart/storage2/kvm/dns.technostu.com/dns.technostu.com.img:
Could not open '/media/stuart/storage2/kvm/dns.technostu.com/dns.technostu.com.img': Permission denied
Depuração e tentativas de soluções alternativas
Já me adicionei ao grupo libvirtd e fiz login novamente.
Eu me certifiquei de que os caminhos dos arquivos estavam corretos
Alterei a propriedade do arquivo .img para mim mesmo, mas depois de executar o comando com e sem sudo, a propriedade do arquivo continua mudando para
root:root
com permissões-rwxr-xr-x
Eu tentei correr
sudo apt-get install apparmor-profiles apparmor-utils sudo aa-complain /usr/lib/libvirt/virt-aa-helper
Deesta postagem, mas isso não funcionou.
Tentei alterar o emulador no arquivo xml conforme especificadoaqui.
O que preciso fazer para “importar” o convidado no novo host no Ubuntu 14.04?
Responder1
Eu tive um problema parecido.
Adicionando meu usuário ao grupo kvm
sudo usermod -a -G kvm username
Então eu me certifiquei de que /dev/kvm
pertence ao root e ao grupo kvm
Depois mudei a propriedade da minha VM existente (convertida do VirtualBox) para nome de usuário:kvm
Finalmente eu configurei group=kvm user=username
meu qemu.conf Isso corrigiu para mim
Responder2
Desligar e ligar o computador novamente (não reiniciei desde a instalação kvm
) alterou a mensagem de erro para:
error: internal error: process exited while connecting to monitor: qemu-system-x86_64
Ao pesquisar esse erro no Google, encontreiesta postagemque recomendou adicionar o seguinte a
user = "root"
group = "root"
para o /etc/libvirt/qemu.conf
arquivo. Certifique-se de incluir as aspas.
Após outra reinicialização, consegui executar virsh create [guest-id].xml
com sucesso.
Responder3
Não é aconselhável executar o QEMU com privilégios de root, pois a partir da versão 6.0.0 não retiraria os recursos do Linux.
No meu caso foi o AppArmor. Eu queria adicionar um arquivo SSDT para uma bateria à VM. Existem algumas pastas às quais o AppArmor permite acesso e outras (como /home/something
) simplesmente não são permitidas. /var/lib/libvirt/images/
é uma das pastas permitidas. Embora eu tenha colocado meu arquivo lá, ele ainda não era permitido pela política do AppArmor (como pode ser visto em sudo cat /var/log/kern.log | grep -C 10 apparmor | grep -C 10 qemu
). O que funcionou foi adicionar /var/lib/libvirt/images/SSDT1.dat rk
assim /etc/apparmor.d/libvirt/TEMPLATE.qemu
:
#
# This profile is for the domain whose UUID matches this file.
#
#include <tunables/global>
profile LIBVIRT_TEMPLATE flags=(attach_disconnected) {
#include <abstractions/libvirt-qemu>
/var/lib/libvirt/images/SSDT1.dat rk,
}