KVM-Image konnte nicht mit virsh gestartet werden, Berechtigung verweigert

12

Mein Host-Betriebssystem ist Ubuntu Server 11.04 (natty)

Nachdem ich die Anweisungen von Ubuntu befolgt hatte , erstellte ich ein KVM-Image mit

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

Die Bilddatei wurde erstellt als

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

Das kann ich mit virsh auflisten von sudo virsh -c qemu: /// system "list --all"

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

Aber wenn ich anrufe

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

Der Fehler wurde ausgelöst:

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

Der Benutzer "myuser" wurde der Gruppe libvirt hinzugefügt.

Ich bin so weit gegangen, die Bilddatei sowie ihr Verzeichnis auf 777 zu ändern, aber der Fehler ist immer noch da.

RedGrittyBrick
quelle

Antworten:

9

KVM-Bilder werden durch Selinux eingeschränkt. Das Einfügen in / var / lib / libvirt / images sollte ausreichen.

http://libvirt.org/drvqemu.html#securityselinux geht näher darauf ein.

Richard Kettlewell
quelle
Mann!! Das hat bei mir funktioniert. Vielen Dank Alter. Anscheinend ist das $ HOME-Verzeichnis Ihres Kontos geschützt, in dem virsh standardmäßig Dinge installiert. Nachdem ich meine VMs installiert hatte, führte ich mv $ HOME / vmfolder / var / lib / libvirt / images aus. Dann habe ich virsh edit vmname ausgeführt und den Speicherort der Bilddatei entsprechend geändert.
Antwan W. A-Dubb
Ich musste auch den Besitzer eines meiner VMs wechseln. Es gehörte zu root, was dazu führte, dass ein Zugriff verweigert wurde. sudo chown -R libvirt-qemu: kvm dbos / ubuntu-kvm /. Sie können ls -l auf / your / vm / dir / und / its / subdirs / ausführen, um die Berechtigungen auf jeder Ebene zu überprüfen. Stellen Sie sicher, dass keiner von ihnen zur Stammgruppe und zum Benutzer gehört.
Antwan W. A-Dubb
Ich habe festgestellt, dass der einfachste und sicherste Weg, Ihre VMs zu erstellen, darin besteht, sicherzustellen, dass Sie in dieses Verzeichnis / var / lib / libvirt / images cd und Ihre Installation von dort aus ausführen. Auf diese Weise müssen Sie sich keine Gedanken über die Berechtigungen auf Ordnerebene machen. Sie werden nur standardmäßig auf den aktuellen Benutzer und nicht auf root angewendet.
Antwan W. A-Dubb
4

Eine einfache Lösung wäre, die Datei /etc/libvirt/qemu.conf zu bearbeiten und die folgenden Zeilen zu kommentieren:

User = "root"
group = "root"

Vergessen Sie nicht, libvirtd neu zu starten

Tman
quelle
4
Das könnte Sie ausführen lassen, aber was sind die Auswirkungen auf die Sicherheit?
cpast
1
Wahrscheinlich besser fügen sich zu der kvmGruppe, stellen Sie die Bilddateiberechtigungen entsprechend und Satz user="<yourname>"in qemu.conf.
März 2377
1

In Arch Linux:

sudo usermod -a -G kvm username

Legen Sie Berechtigungen für QEMU-Prozesse in fest /etc/libvirt/qemu.conf

user = "username"
group = "kvm"

So aktualisieren Sie die Gruppenmitgliedschaft im selben Terminal:

su - username

Fügen Sie Ihrem einen Alias ​​hinzu ~/.bashrc

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

schließlich

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