L'image KVM n'a pas pu démarrer avec virsh, autorisation refusée

12

Mon OS hôte est Ubuntu Server 11.04 (natty)

Après avoir suivi les instructions détaillées par l' aide d'Ubuntu , j'ai créé une image KVM en utilisant

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

Le fichier image a été créé en tant que

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

Le je peux le lister avec virsh par sudo virsh -c qemu: /// system "list --all"

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

Buth quand j'appelle

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

L'erreur a été levée:

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

L'utilisateur "myuser" a été ajouté au groupe libvirt.

Je suis allé jusqu'à chmoder le fichier image ainsi que son répertoire au 777, mais l'erreur est toujours là.

RedGrittyBrick
la source

Réponses:

9

Les images KVM sont restreintes par selinux. Les placer dans / var / lib / libvirt / images devrait suffire.

http://libvirt.org/drvqemu.html#securityselinux va plus en détail.

Richard Kettlewell
la source
Homme!! Cela a fonctionné pour moi. Merci beaucoup mec. Apparemment, le répertoire $ HOME de votre compte est protégé, où virsh aime installer les choses par défaut. Après avoir installé mes vms, j'ai exécuté mv $ HOME / vmfolder / var / lib / libvirt / images. Ensuite, j'ai exécuté virsh edit vmname et changé l'emplacement du fichier image en conséquence.
Antwan W. A-Dubb
J'ai également dû changer le propriétaire d'une de mes vms. Il appartenait à root ce qui a conduit à un accès refusé. sudo chown -R libvirt-qemu: kvm dbos / ubuntu-kvm /. Vous pouvez exécuter ls -l sur / votre / vm / dir / et / ses / sous-répertoires / pour vérifier les autorisations à chaque niveau. Assurez-vous qu'aucun d'entre eux n'appartient au groupe racine et à l'utilisateur.
Antwan W. A-Dubb
J'ai trouvé que le moyen le plus simple et le plus sûr de créer vos VM est de vous assurer que vous cd dans ce répertoire / var / lib / libvirt / images et d'exécuter votre installation à partir de là. De cette façon, vous n'aurez pas à vous soucier des autorisations au niveau du dossier. Ils vont juste par défaut à l'utilisateur actuel par opposition à root.
Antwan W. A-Dubb
4

une solution simple serait d'éditer le fichier /etc/libvirt/qemu.conf et de décommenter les lignes suivantes:

User = "root"
group = "root"

N'oubliez pas de redémarrer libvirtd

Tman
la source
4
Cela pourrait vous permettre de l'exécuter, mais quelles sont les implications pour la sécurité?
cpast
1
Probablement mieux vous ajouter au kvmgroupe, réglez les autorisations de fichier d'image en conséquence, et ensemble user="<yourname>"dans qemu.conf.
Marc.2377
1

Sous Arch Linux:

sudo usermod -a -G kvm username

définir des autorisations pour les processus QEMU dans /etc/libvirt/qemu.conf

user = "username"
group = "kvm"

pour actualiser l'appartenance à un groupe dans le même terminal:

su - username

Ajoutez un alias à votre ~/.bashrc

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

enfin

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