A imagem do KVM falhou ao iniciar com virsh, permissão negada

12

Meu SO host é o Ubuntu Server 11.04 (natty)

Depois de seguir as instruções detalhadas pela ajuda do Ubuntu , criei uma imagem KVM usando

sudo ubuntu-vm-builder kvm hardy --libvirt qemu:///system

O arquivo de imagem foi criado como

-rw-r--r-- 1 root root 438M 2011-06-17 14:39 ubuntu-kvm/tmpK9hbU5.qcow2

O que eu posso listar com virsh pelo sudo virsh -c qemu: /// system "list --all"

Id   Name                 State
----------------------------------
  - ubuntu               shut off  

Buth quando eu ligo

sudo virsh -c qemu:///system "start ubuntu"

O erro foi exibido:

error: Failed to start domain ubuntu
error: internal error process exited while connecting to monitor: kvm: -drive file=/home/myuser/vmopt/ubuntu-kvm/tmpK9hbU5.qcow2,if=none,id=drive-ide0-0-0,format=qcow2: could not open disk image /home/myuser/vmopt/ubuntu-kvm/tmpK9hbU5.qcow2: Permission denied

O usuário "myuser" foi adicionado ao grupo libvirt.

Eu fui tão longe quanto chmod o arquivo de imagem e seu diretório para 777, mas o erro ainda está lá.

RedGrittyBrick
fonte

Respostas:

9

Imagens KVM são restritas pelo selinux. Colocá-los em / var / lib / libvirt / images deve ser suficiente.

http://libvirt.org/drvqemu.html#securityselinux entra em mais detalhes.

Richard Kettlewell
fonte
Cara!! Isso funcionou para mim. Valeu mesmo, cara. Aparentemente, o diretório $ HOME da sua conta está protegido e é onde o virsh gosta de instalar as coisas por padrão. Depois de instalar meus vms, executei o mv $ HOME / vmfolder / var / lib / libvirt / images. Depois, executei o virsh edit vmname e alterei a localização do arquivo de imagem de acordo.
Antwan W. A-Dubb
Eu também tive que mudar o dono de um dos meus vms. Pertenceu à raiz, o que levou a um acesso negado. sudo chown -R libvirt-qemu: kvm dbos / ubuntu-kvm /. Você pode executar ls -l em / your / vm / dir / e / its / subdirs / para verificar as permissões em cada nível. Verifique se nenhum deles pertence ao grupo raiz e ao usuário.
Antwan W. A-Dubb
Eu descobri que a maneira mais fácil e segura de criar seus vm's é certificar-se de fazer o cd nesse diretório / var / lib / libvirt / images e executar a instalação a partir daí. Dessa forma, você não precisará se preocupar com as permissões no nível da pasta. Eles serão padronizados para o usuário atual e não para o root.
Antwan W. A-Dubb
4

uma solução fácil seria editar o arquivo /etc/libvirt/qemu.conf e descomentar as seguintes linhas:

User = "root"
group = "root"

Não se esqueça de reiniciar o libvirtd

Tman
fonte
4
Isso pode permitir que você execute, mas quais são as implicações de segurança?
cpast
11
Provavelmente melhor para adicionar-se ao kvmgrupo, ajustar as permissões de arquivo de imagem em conformidade, e conjunto user="<yourname>"em qemu.conf.
precisa saber é o seguinte
1

No Arch Linux:

sudo usermod -a -G kvm username

definir permissões para processos QEMU em /etc/libvirt/qemu.conf

user = "username"
group = "kvm"

para atualizar a associação ao grupo no mesmo terminal:

su - username

Adicione um alias ao seu ~/.bashrc

alias virsh='EDITOR=nano sudo virsh && cd /etc/libvirt/qemu'

finalmente

source ~/.bashrc
virsh
list --all
start mydomain
Stuart Cardall
fonte