O virt-manager não pode se conectar ao libvirt

38

insira a descrição da imagem aqui

Estou executando o Ubuntu 12.04.2 32 bits.

O erro não aparece se eu começar gksudo virt-manager.

  • libvirt-bin está instalado.
  • Não sei como verificar o daemon.
  • Eu sou um membro de libvirtd.

Saída de 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`

Saída de ls -l /var/run/libvirt/libvirt-sock:

srwxrwx --- 1 raiz libvirtd 0 Conjunto 13 15:04 / var / run / libvirt / libvirt-sock

Saída de getent group libvirtd:

 libvirtd:x:130:OTHERUSER,MYUSER

Mensagem de erro detalhada

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
Aquele cara brasileiro
fonte
O erro não aparece se eu começargksudo virt-manager
Aquele cara brasileiro
Qual é o conteúdo do seu /etc/libvirt/libvirtd.confarquivo?
Bruno Pereira
Não é o lugar perfeito, mas se você estiver em arco como eu sou e instalado qemue virt-manager, tente executar sudo systemctl start libvirtde, opcionalmente, sudo systemctl enable libvirtdse você quer que ele inicie na inicialização.
Ave

Respostas:

50

A reinicialização do sistema em que virt-managerestá instalado resolveu o problema.

Aquele cara brasileiro
fonte
18
não é uma solução típica do Linux!
Woeitg
1
No 16.04, seu libvirt-bin .service não libvirtd .service se você se perguntar. Então o daemon está lá.
Bulat M.
1
Normalmente, apenas o logout / login deve ser suficiente neste caso para fazer com que as alterações na associação ao grupo se propaguem para a sessão atual, mas para mim, pessoalmente, não há muita diferença entre efetuar logon e reinicializar (causa uma interrupção muito semelhante, a reinicialização leva apenas 7s a mais), então Eu usei a reinicialização "apenas por precaução".
Ped7g
"você tentou desligá-lo e ligá-lo novamente?"
tisaconundrum
33

Após a instalação do KVM, execute este comando para que o erro não ocorra novamente.

sudo virt-manager
Abhi Abhishek
fonte
Uau!!! O que é isso, como isso funcionou?
Kishor Pawar #
Funcionou por causa de sudo. leia explicação em outra resposta ask.fedoraproject.org/en/question/45805/...
Kishor Pawar
Deve ser a resposta aceita.
Magno C
1
Ele funciona, mas precisava de raiz para usar. Eu quero usá-lo do usuário normal. O que posso fazer por isso?
Puneet Dixit
4
Como @ andrew-grasso afirma, você precisa fazer logout / login para que as alterações na associação ao grupo sejam aplicadas. O uso sudonão é recomendado.
precisa
6

Para mim, o erro foi causado porque as alterações na associação ao grupo não se aplicam sem um logout-logon (ou reinicialização). Acabei de instalar o KVM e o libvirt-bin. O instalador adicionou automaticamente meu usuário ao grupo libvirtd; eu havia reiniciado o serviço libvirt-bin, mas ainda estava recebendo o erro.

Simplesmente sair e voltar a resolver o problema, aplicando minha nova associação ao grupo.

Supondo que você acabou de instalar o libvirt-bin e já confirmou que seu usuário atual é membro do grupo libvirtd, conforme a mensagem de erro sugere, será necessário efetuar logout e logon novamente para que a nova associação do grupo seja aplicada.

Não altere as permissões de arquivo para 777. Não execute apenas tudo como root ou sudo para evitar entender o que está errado.

Espero que isso ajude alguém.

Andrew Grasso
fonte
5

Estou gerenciando o Qemu e o Virtualbox na minha máquina Ubuntu 14.02 e, depois de instalar o Virtualbox, libvirt-bin falhou ao iniciar automaticamente. Portanto, verifique se a libvirt-bin está em execução:

ps faux | grep libvirt-bin

se você não o vir na saída ps - inicie manualmente, execute o virt-manager:

sudo service libvirt-bin start

Valentin Kantor
fonte
5

No Ubuntu 16.04.3 LTS

systemctl start virtlogd.socket

foi a única resposta. O soquete possui seu próprio daemon. Isso é incomum.

mr.zog
fonte
1

Depois de instalar todos os pacotes declarados pelo op, você pode sair e fazer login novamente. Qualquer coisa que o adicionar aos grupos de usuários, você precisará sair e fazer login novamente para ser adicionado aos novos grupos. É um pequeno inconveniente, menos do que reiniciar.

Isso foi marcado como incompleto, no entanto, é uma regra geral para adicionar seu usuário a um grupo. Um relog é necessário, essa foi a parte que faltava que eu não vi aqui.

tuxdalinuxpenguin
fonte
1
Bem-vindo ao Ask Ubuntu! Em sua forma atual, sua resposta não é tão boa quanto poderia ser. Você poderia consultar o guia Como escrever uma boa resposta e o Estilo para perguntas e respostas . Você pode esclarecer quais pacotes precisam ser instalados.
1911 J. Starnes
1

Uma alternativa à reinicialização / logout é executar os seguintes comandos em um terminal:

newgrp libvirt
virt-manager

O newgrpcomando permite que o usuário ingresse no libvirtgrupo sem logout, para processos iniciados no mesmo shell depois newgrp. Claro que isso só funciona se o instalador da libvirt o colocar no grupo libvirt, com o qual você pode verificar:

getent group libvirt
alkisg
fonte
0

O problema é discutido no Launchpad e a causa desse problema pode ser resolvida instalando o xen-utilspacote ( xen-utils-4.4no Ubuntu 14.04). Eu já estava contornando esse problema virt-manageratravés sudoda linha de comando.

Jay Philips
fonte
xené semelhante ao kvm wiki.archlinux.org/index.php/KVM , se você já kvminstalou, não instale xen. Substituiu minha kvminstalação e meus vms pararam de funcionar. quando eu removi xenvolta vms começou a correr.
Kishor Pawar
0

Para mim, o caso foi que, ao usá- service libvirt-bin statuslo, mostrou que tudo estava funcionando bem, embora eu não pudesse conectar como:

    ● 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
[...]

No /var/run/libvirt/deve haver esses dois arquivos:

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

Se os soquetes não estiverem aparecendo, use service libvirt-bin stop; service libvirt-bin startpara reiniciar completamente o processo. O uso service libvirt-bin restartnão é suficiente e não recriará o soquete.

O libvirt-binserviço pode ser interrompido com segurança e não desligará os convidados .

Flatron
fonte
0

No Ubuntu 17.10, eu também tinha que me adicionar ao grupo libvirt. Eu já havia me incluído no libvirtd e não me removi desse grupo. Não sei se ambos são necessários ou não.

Eu fiz isso desde que notei que o conteúdo de / var / run / libvirt pertencia à libvirt em vez da libvirtd.

K. Gimbel
fonte
Para ser uma resposta completa, você precisa dizer como se adicionar aos grupos extras.
Pbhj
-1

Eu tive esse mesmo problema e no relatório de erro detalhado ele fala sobre falta de permissão para o libvirt-sockarquivo. Alterar a permissão do arquivo /var/run/libvirt/libvirt-sockpara 777 fez com que funcionasse para mim.

Gebeyew
fonte
3
Alterar máscaras de permissão para 0777 é ruim . Não recomende ações potencialmente prejudiciais sem explicar as consequências! -1
David Foerster
-1

use o Software Ubuntu para desinstalar o gerenciador virtual, sair, fazer login novamente, instalar o gerenciador virtual e executá-lo normalmente sem usar o sudo ou mesmo usando a linha de comando.

sei quem é você
fonte
1
Você pode melhorar sua resposta expandindo por que essas etapas são necessárias em vez de simplesmente reinstalar. Ou seguindo uma das outras respostas. Da avaliação
J. Starnes