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

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.


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

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.


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


5

No Ubuntu 16.04.3 LTS

systemctl start virtlogd.socket

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


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.


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

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.


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 .


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.


Para ser uma resposta completa, você precisa dizer como se adicionar aos grupos extras.
— Pbhj


-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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.