34

enter image description here

I'm running Ubuntu 12.04.2 32 bits.

The error doesn't show up if I start gksudo virt-manager.

  • libvirt-bin is installed.
  • I don't know how to check for the daemon.
  • I am a member of libvirtd.

Output of ps ax | grep libvirt:

9225 ? Sl 0:04 /usr/sbin/libvirtd -d
9302 ? S 0:00 /usr/sbin/dnsmasq -u libvirt-dnsmasq --strict-order --bind-interfaces --pid-file=/var/run/libvirt/network/default.pid --conf-file= --except-interface lo --listen-address 192.168.122.1 --dhcp-range 192.168.122.2,192.168.122.254 --dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases --dhcp-lease-max=253 --dhcp-no-override`

Output of ls -l /var/run/libvirt/libvirt-sock:

srwxrwx--- 1 root libvirtd 0 Set 13 15:04 /var/run/libvirt/libvirt-sock

Output of getent group libvirtd:

 libvirtd:x:130:OTHERUSER,MYUSER

Detailed error message

Unable to connect to libvirt.   
Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied

Verify that:
 - The 'libvirt-bin' package is installed
 - The 'libvirtd' daemon has been started
 - You are member of the 'libvirtd' group

Libvirt URI is: qemu:///system

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/connection.py", line 1185, in _open_thread
    self.vmm = self._try_open()
  File "/usr/share/virt-manager/virtManager/connection.py", line 1167, in _try_open
    flags)
  File "/usr/lib/python2.7/dist-packages/libvirt.py", line 102, in openAuth
    if ret is None:raise libvirtError('virConnectOpenAuth() failed')
libvirtError: Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied
  • The error doesn't show up if I start gksudo virt-manager – That Brazilian Guy Sep 13 '13 at 18:52
  • What are the contents of your /etc/libvirt/libvirtd.conf file? – Bruno Pereira Sep 13 '13 at 19:41
  • Not the perfect place, but if you're on arch like I am and installed qemu and virt-manager, try running sudo systemctl start libvirtd and optionally sudo systemctl enable libvirtd if you want it to start at startup. – Ave Apr 30 '17 at 23:15

12 Answers 12

48

Rebooting the system where virt-manager is installed solved the issue.

  • 13
    not a typical Linux solution! – Woeitg Feb 3 '17 at 9:55
  • 1
    On 16.04 its libvirt-bin .service not libvirtd .service if you wonder. So the daemon is there. – Bulat M. Mar 11 '17 at 4:30
  • 1
    Usually just logout/login should be enough in this case to make the group membership changes propagate into current session, but for me personally there's not much difference between relogin and reboot (causes very similar disruption, the reboot takes just about 7s longer), so I rather used reboot "just in case". – Ped7g Feb 12 '18 at 12:58
31

After installing KVM, run this command then that error will not occur again.

sudo virt-manager
  • whoa!!! What is this, How did this work? – Kishor Pawar Feb 10 '16 at 6:07
  • It worked because of sudo. read explanation in another answer ask.fedoraproject.org/en/question/45805/… – Kishor Pawar Feb 10 '16 at 6:28
  • Should be the acepted answer. – Magno C Mar 13 '16 at 21:23
  • 1
    It works but needed root to use. I want to use it from normal user. What can i do for it? – Puneet Dixit Apr 29 '17 at 20:37
  • 3
    As @andrew-grasso states, you need to logout/login for the group membership changes to apply. Using sudo is not recommended. – Alex Willison Jun 8 '17 at 14:34
5

I'm managing both Qemu and Virtualbox on my Ubuntu 14.02 machine, and after installing Virtualbox libvirt-bin failed to autostart. So check if libvirt-bin is running:

ps faux | grep libvirt-bin

if you don't see it in ps output - start in manually, then run virt-manager:

sudo service libvirt-bin start

5

For me, the error was caused because group membership changes don't apply without a logout-login (or reboot). I had just installed KVM and libvirt-bin. The installer automatically added my user to the libvirtd group, I had restarted the libvirt-bin service, but I was still getting the error.

Simply logging out and back in resolved the problem by applying my new group membership.

Assuming you just installed libvirt-bin and already confirmed that your current user is a member of the libvirtd group as the error message suggests, you will need to log out and back in for the new group membership to apply.

Don't change file permissions to 777 Don't just run everything as root or sudo to avoid understanding what's wrong.

I hope this helps someone.

5

On Ubuntu 16.04.3 LTS

systemctl start virtlogd.socket

was the only answer. The socket has its own daemon. That's unusual.

1

After installing all of the packages stated by the op, you can log out then log back in. Anything that add you to user groups you need to log out and back in to be added to the new groups. It is a minor inconvenience, less of one than rebooting.

This was flagged as not complete however this goes as a general rule for adding your user to a group. A relog is needed, that was the missing part that I did not see here.

0

The problem is discussed on Launchpad and the cause of this problem can be solved by installing the xen-utils package (xen-utils-4.4 on Ubuntu 14.04). I previously was getting around this issue by virt-manager through sudo at the command line.

  • xen is similar to kvm wiki.archlinux.org/index.php/KVM, if you already have kvm installed do not install xen. It override my kvm installation and my vms stopped running. when I removed xen back vms started running. – Kishor Pawar Feb 10 '16 at 7:07
0

For me the case was that when using service libvirt-bin status it showed that everything was just running fine though I could not connect like:

    ● libvirt-bin.service - Virtualization daemon
       Loaded: loaded (/lib/systemd/system/libvirt-bin.service; enabled; vendor preset: enabled)
       Active: active (running) since Do 2016-09-22 13:22:16 CEST; 6min ago
[...]

In /var/run/libvirt/ there should be these two files:

srwxrwxrwx  1 root libvirtd    0 Sep 22 13:22 libvirt-sock=
srwxrwxrwx  1 root libvirtd    0 Sep 22 13:22 libvirt-sock-ro=

If the sockets are not showing, use service libvirt-bin stop; service libvirt-bin start to completely restart the process. Using service libvirt-bin restart is not sufficient and will not re-create the socket.

The libvirt-bin service can safely be stopped and will not poweroff the guests.

0

As of Ubuntu 17.10, I had to also add myself to group libvirt. I had already added myself to libvirtd and did not remove myself from that group. I do not know if both are required or not.

I did this since I noticed the contents of /var/run/libvirt were owned by libvirt instead of by libvirtd.

  • To be a full answer you need to say how to add oneself to the extra groups. – pbhj Mar 5 '18 at 23:26
0

An alternative to reboot/logout is to run the following commands from a terminal:

newgrp libvirt
virt-manager

The newgrp command allows the user to join the libvirt group without logout, for processes that are started in the same shell after newgrp. Of course this only works if the libvirt installer put you in the libvirt group, which you can check with:

getent group libvirt
-1

I had this same problem and in the detailed error report it talks about lack of permission to the libvirt-sock file. Changing the permission of the file /var/run/libvirt/libvirt-sock to 777 made it work for me.

-1

use Ubuntu Software to uninstall virtual manager, log out, log back in, install virtual manager, and run it normally without using sudo or even using the command line.

  • 1
    You could improve your answer by expanding on why these steps are necessary instead of a simply reinstalling. Or following one of the other answers. From Review – J. Starnes Dec 20 '17 at 4:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.