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

enter image description here

Я использую 32-разрядную версию Ubuntu 12.04.2.

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

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

Выход из ps ax | grep libvirt:

9225 ? Sl 0:04 /usr/sbin/libvirtd -d9302 ? 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 deniedVerify that: - The 'libvirt-bin' package is installed - The 'libvirtd' daemon has been started - You are member of the 'libvirtd' groupLibvirt URI is: qemu:///systemTraceback (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

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

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

sudo virt-manager

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

newgrp libvirtvirt-manager

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

getent group libvirt

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

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

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

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

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

На Ubuntu 16.04.3 LTS

systemctl start virtlogd.socket

это был единственный ответ. У сокета есть свой собственный демон. Это необычно.

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

ps faux | grep libvirt-bin

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

sudo service libvirt-bin start

Пользователь в libvirt группа может запускать virt-manager и virsh без sudo.

$ sudo gpasswd libvirt -a <username> $ cat <<EOF | tee -a ~/.profileexport VIRSH_DEFAULT_CONNECT_URI=qemu:///system EOF $ sudo reboot

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

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

Различные ответы ссылаются на тот факт, что проблема может возникнуть из-за того, что групповые разрешения не применяются к пользователю, запускающему диспетчер виртуальных машин, и принятый ответ, в котором отмечается, что перезагрузка устранила проблему, вполне возможно, зависел от перезагрузки, чтобы предоставить пользователю групповые разрешения при входе в систему (хотя перезагрузка потенциально может запустить службы также).

В случае Ubuntu 20.04.1 установка QEMU /KVM с помощью apt-get автоматически запускала все службы и в конечном итоге разрешалась строго путем выяснения, как предоставить пользователю запущенный диспетчер виртуальных машин libvirt групповой доступ (даже если /etc/group действительно показал, что пользователю были предоставлены права).

Как упоминают другие, выход из системы / вход в систему обычно необходим для регистрации новых групповых разрешений, но в случае графического рабочего стола GNOME с использованием gdm, выхода из системы и повторного входа в систему было недостаточно, чтобы предоставить пользователю GUI новый libvirt групповые права. На самом деле, выход из системы И перезапуск gdm, останавливая все экземпляры GNOME shell), и повторного входа в систему было недостаточно.

В одном сценарии следующее было эффективным и не требовало перезагрузки после установки libvirt:

  • loginctl terminate-user <user> где пользователь входит в GNOME.
  • sudo systemctl restart gdm

То loginctl команда была получена от этот ответ.

То gdm перезагрузка потребовалась, потому что после loginctl был запущен, графическая консоль завершила работу, не предложив экран входа в систему (оставив только черный экран). Не было определено, является ли loginctl всегда отключает графический механизм входа в систему, но если это не так, то gdm перезапуск может быть излишним (опущен).

Для протокола, в случае, когда это решение сработало, libvirt/KVM был установлен путем установки: bridge-utils, libvirt-daemon-system, qemu-kvm, и virt-manager. Это правильно запустило необходимые службы без ручного вмешательства и автоматически назначило групповые права уже существующим пользователям с правами sudo.

Вошедший в систему пользователь должен быть добавлен в libvirt пользовательская группа

sudo usermod -a -G libvirt $USER

Добавьте себя в группу libvirt (и перезагрузитесь): sudo usermod -a -G libvirt <имя входа>

Не идеальное место, но если вы используете arch, как я, и установили “qemu” и “virt-manager”, попробуйте запустить “sudo systemctl start libvirtd” и, возможно, “sudo systemctl enable libvirtd”, если вы хотите, чтобы он запускался при запуске.

Ошибка не появляется, если я запускаю “gksudo virtual-manager”

Каково содержимое вашего файла /etc/libvirt/libvirtd.conf?