virt-manager не может подключиться к libvirt

38

введите описание изображения здесь

Я использую Ubuntu 12.04.2 32 бита.

Ошибка не появляется, если я начинаю gksudo virt-manager.

  • libvirt-bin установлен.
  • Я не знаю, как проверить наличие демона.
  • Я являюсь членом libvirtd.

Выход 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`

Выход ls -l /var/run/libvirt/libvirt-sock:

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

Выход getent group libvirtd:

 libvirtd:x:130:OTHERUSER,MYUSER

Подробное сообщение об ошибке

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
Этот бразильский парень
источник
Ошибка не появляется, если я начинаюgksudo virt-manager
Тот бразильский парень
Каково содержимое вашего /etc/libvirt/libvirtd.confфайла?
Бруно Перейра
Не идеальное место, но если вы находитесь на арке, как я и установлен, qemuи virt-managerпопробуйте запустить sudo systemctl start libvirtdи при необходимости, sudo systemctl enable libvirtdесли вы хотите, чтобы он запускался при запуске.
Ave

Ответы:

50

Перезагрузка системы, в которой virt-managerустановлена ​​система, решила проблему.

Этот бразильский парень
источник
18
не типичное решение для Linux!
Woeitg
1
16.04. Libvirt-bin .service, а не libvirtd .service, если вам интересно. Итак, демон там.
Булат М.
1
Обычно в этом случае достаточно просто выйти из системы или войти в систему, чтобы изменения членства в группе распространились на текущий сеанс, но лично для меня нет большой разницы между перезапуском и перезагрузкой (вызывает очень похожие сбои, перезагрузка длится примерно на 7 секунд дольше), поэтому Я скорее использовал перезагрузку "на всякий случай".
Ped7g
"Вы пытались выключить, а затем снова включить?"
tisaconundrum
33

После установки KVM выполните эту команду, чтобы эта ошибка больше не возникала.

sudo virt-manager
Абхи Абхишек
источник
Вау !!! Что это, как это работает?
Кишор Павар
Это сработало из-за sudo. Прочитайте объяснение в другом ответе ask.fedoraproject.org/en/question/45805/…
Кишор Павар
Должен быть ответ.
Magno C
1
Это работает, но нужен root для использования. Я хочу использовать его от обычного пользователя. Что я могу сделать для этого?
Пунит Диксит
4
Как утверждает @ andrew-grasso, вам необходимо выйти из системы или войти в систему, чтобы изменения в составе группы вступили в силу. Использование sudoне рекомендуется.
Алекс Виллисон
6

Для меня ошибка была вызвана тем, что изменения членства в группе не применяются без входа в систему (или перезагрузки). Я только что установил KVM и libvirt-bin. Программа установки автоматически добавила моего пользователя в группу libvirtd, я перезапустил службу libvirt-bin, но все еще получал сообщение об ошибке.

Простой выход из системы и ее повторное решение решили проблему путем применения моего нового членства в группе.

Предполагая, что вы только что установили libvirt-bin и уже подтвердили, что ваш текущий пользователь является членом группы libvirtd, как следует из сообщения об ошибке, вам нужно будет выйти из системы и снова войти в нее, чтобы применить новое членство в группе.

Не изменяйте права доступа к файлам на 777. Не просто запускайте все с правами root или sudo, чтобы избежать понимания, что не так.

Я надеюсь, что это помогает кому-то.

Эндрю Грассо
источник
5

Я управляю как Qemu, так и Virtualbox на моем компьютере с Ubuntu 14.02, и после установки Virtualbox libvirt-bin не удалось автоматически запуститься. Поэтому проверьте, работает ли libvirt-bin:

ps faux | grep libvirt-bin

если вы не видите его в выводе ps - запустите вручную, затем запустите virt-manager:

sudo service libvirt-bin start

Валентин Кантор
источник
5

На Ubuntu 16.04.3 LTS

systemctl start virtlogd.socket

был единственный ответ. Сокет имеет своего собственного демона. Это необычно

mr.zog
источник
1

После установки всех пакетов, указанных в операторе, вы можете выйти из системы, а затем снова войти в нее. Все, что добавляет вас в группы пользователей, необходимо для выхода из системы и входа в нее для добавления в новые группы. Это небольшое неудобство, меньше одного, чем перезагрузка.

Это было помечено как незавершенное, однако это является общим правилом для добавления вашего пользователя в группу. Необходим перелог, это была недостающая часть, которую я не видел здесь.

tuxdalinuxpenguin
источник
1
Добро пожаловать в Спросите Ubuntu! В своем нынешнем виде ваш ответ не так хорош, как мог бы быть. Не могли бы вы прочитать « Как написать хороший ответ» и руководство по стилю для вопросов и ответов . Вы можете уточнить, какие пакеты нужно установить.
Дж. Старнс
1

Альтернативой перезагрузке / выходу из системы является запуск следующих команд из терминала:

newgrp libvirt
virt-manager

Команда newgrpпозволяет пользователю присоединиться к libvirtгруппе без выхода из системы для процессов, которые запускаются в той же оболочке после newgrp. Конечно, это работает, только если установщик libvirt поместит вас в группу libvirt, которую вы можете проверить с помощью:

getent group libvirt
alkisg
источник
0

Проблема обсуждается на Launchpad, и причина этой проблемы может быть решена путем установки xen-utilsпакета ( xen-utils-4.4в Ubuntu 14.04). Раньше я обходил эту проблему virt-managerчерез sudoкомандную строку.

Джей Филипс
источник
xenпохоже на kvm wiki.archlinux.org/index.php/KVM , если вы уже kvmустановили, не устанавливайте xen. Он переопределил мою kvmустановку, и мои VMS перестали работать. когда убрал xenобратно vms начал работать.
Кишор Павар
0

Для меня дело было в том, что при использовании service libvirt-bin statusон показал, что все просто работает нормально, хотя я не мог подключиться, как:

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

В /var/run/libvirt/должны быть эти два файла:

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

Если сокеты не отображаются, используйте service libvirt-bin stop; service libvirt-bin startдля полного перезапуска процесса. Использование service libvirt-bin restartнедостаточно и не создаст заново сокет.

libvirt-binСлужба может быть безопасно остановлен и не POWEROFF гостей .

Flatron
источник
0

Начиная с Ubuntu 17.10, я также должен был добавить себя в группу libvirt. Я уже добавил себя в libvirtd и не удалил себя из этой группы. Я не знаю, требуются ли оба или нет.

Я сделал это, так как заметил, что содержимое / var / run / libvirt принадлежит libvirt, а не libvirtd.

К. Гимбел
источник
Чтобы получить полный ответ, нужно сказать, как добавить себя в дополнительные группы.
августа
-1

У меня была такая же проблема, и в подробном отчете об ошибке говорится о недостаточном разрешении libvirt-sockфайла. Изменение разрешения файла /var/run/libvirt/libvirt-sockна 777 заставило его работать на меня.

Gebeyew
источник
3
Изменение масок разрешений на 0777 - это плохо . Не рекомендуйте потенциально вредные действия без объяснения последствий! -1
Дэвид Фёрстер
-1

используйте Ubuntu Software для удаления виртуального менеджера, выхода из системы, входа в систему, установки виртуального менеджера и запуска его в обычном режиме без использования sudo или даже с помощью командной строки.

знаю тебя
источник
1
Вы можете улучшить свой ответ, объяснив, почему эти шаги необходимы вместо простой переустановки. Или следуя одному из других ответов. Из обзора
Дж.