Laine Stump <laine@laine.org> schrieb am 9:17 Mittwoch, 15.Januar 2014:
On 01/15/2014 10:05 AM, Karoline Haus wrote:
Good morning,

I'm using libvirtd on Gentoo.
This is libvirt version: 1.1.3.1

I have trouble starting a VM using virsh start $vm. I do this as root, because as non-root user it did not work at all (especially it failed attaching to the networks). So, when I run the command (with sudo), I get the following error in libvirtd.log:

2014-01-15 07:51:00.423+0000: 16158: warning : qemuDomainObjTaint:1573 : Domain id=5 name='vader' uuid=f5b8c05b-9c7a-3211-49b9-2bd635f7e2aa is tainted: high-privileges

This usually means that libvirt has been configured to run the qemu process as root, which introduces the possibility that a guest exploiting some theoretical security exploit in qemu could gain control of the host system. Normally libvirt installations will by default be configured to run the qemu-kvm process as user qemu, with all privilege bits cleared; either gentoo's default install of libvirt doesn't set things up this way, or you or someone else has modified /etc/libvirt/qemu.conf to change the "user" and "group" parameters to "root".

To fix this problem, edit /etc/libvirt/qemu.conf and either comment out those two parameters (if they aren't already commented out), or change them to set both user and group to "qemu" (assuming that gentoo follows the standard of adding a "qemu" user when installing libvirt), then restart the libvirt service and try starting the guest again.

Note, however, that this is a *warning*, not an error, so the guest should still be starting up and running. If not, then there should be some subsequent error message in the log (and/or look at the end of /var/log/libvirt/qemu/${vm}.log for error messages from qemu)

2014-01-15 07:51:00.428+0000: 16158: error : virDBusCallMethod:1173 : Launch helper exited with unknown return code 1

At the same time I get an error in /var/log/messages which seems related:
Jan 15 07:51:00  dbus[15845]: [system] Activating service name='org.freedesktop.machine1' (using servicehelper)
Jan 15 07:51:00  dbus[15845]: [system] Activated service 'org.freedesktop.machine1' failed: Launch helper exited with unknown return code 1

Anyone ever seen this issue? I have no idea where to look for errors because the message don't really tell me much.

The problem is that the part that tells you something is pretty short: "Domain [...] is tainted: high-privileges"

I have tried to execute the qemu-kvm command on the command line directly and that worked immediately.

Because when you run qemu-kvm from the commandline, it is being run as root. libvirt goes to great lengths to enable running the qemu-kvm process as "unprivileged" as possible, so that any potential security exploits in qemu-kvm will be as limited as possible in the damage they can do. Any operation that requires elevated privileges (e.g. creating a tap device to hook up the guest's networking, modifying the selinux labelling of various resources) is done by libvirt, which passed open file descriptors to the newly created resources to a qemu-kvm process that has been created running as an unprivileged user, with all privilege bits reset and pretty much all system resources limited by cgroups.


So the problem must be in libvirt.

Well, in your system's libvirt configuration anyway.



The problem is not the "Domain is tainted" issue. I have set the privileges back to user libvirt (I had set it to root myself in libvirtd.conf) and the problem still exists.

2014-01-15 10:42:34.963+0000: 16162: info : libvirt version: 1.1.3.1
2014-01-15 10:42:34.963+0000: 16162: error : virDBusCallMethod:1173 : Launch helper exited with unknown return code 1

You can see now the "Domain is tainted" error (warning!) doesn't show anymore, but the domain still does not start. The only error message I get is the one above.

In /var/log/messages I still get:

Jan 15 10:42:34  dbus[15845]: [system] Activating service name='org.freedesktop.machine1' (using servicehelper)
Jan 15 10:42:34  dbus[15845]: [system] Activated service 'org.freedesktop.machine1' failed: Launch helper exited with unknown return code 1

I think the problem is in org.freedesktop.machine1. For some reason, that service cannot be activated, but I don't understand why.

Any help would be greatly appreciated.