Я использую 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 корневой libvirtd 0 Set 13 15:04 / var / run / libvirt / libvirt-sock
blockquote>Вывод
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
Перезагрузка системы, в которой установлен virt-manager
, решила проблему.
После установки KVM выполните эту команду, чтобы эта ошибка больше не возникала.
sudo virt-manager
На Ubuntu 16.04.3 LTS
systemctl start virtlogd.socket
был единственным ответом. Сокет имеет своего собственного демона. Это необычно.
Я управляю и Qemu и Virtualbox на моей машине Ubuntu 14.02, и после установки libvirt-мусорного-ведра Virtualbox не удался автоматически запустить. Так проверяют, работает ли libvirt-мусорное-ведро:
ps faux | grep libvirt-bin
если Вы не видите, что это в PS произвести - запускается во вручную, то выполненный virt-менеджер:
sudo service libvirt-bin start
Для меня ошибка была вызвана тем, что изменения членства в группе не применяются без логина-входа (или перезагрузки). Я только что установил KVM и libvirt-bin. Программа установки автоматически добавила моего пользователя в группу libvirtd, я перезапустил службу libvirt-bin, но все еще получал сообщение об ошибке.
Простой выход из системы и ее повторное решение решили проблему путем применения моего нового членства в группе.
Предполагая, что вы только что установили libvirt-bin и уже подтвердили, что ваш текущий пользователь является членом группы libvirtd, как следует из сообщения об ошибке, вам нужно будет выйти и снова войти, чтобы применить новое членство в группе.
Не меняйте права доступа к файлам на 777 Не просто запускайте все с правами root или sudo, чтобы избежать понимания, что не так.
Надеюсь, это кому-нибудь поможет.
Проблема обсуждается на Launchpad , и причину этой проблемы можно решить, установив пакет xen-utils
(xen-utils-4.4
в Ubuntu 14.04). Ранее я обходил эту проблему с помощью virt-manager
- sudo
в командной строке.
Для меня случай был, что при использовании service libvirt-bin status
это показало, что все просто работало нормально, хотя я не мог соединиться как: 118]
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
может быть безопасно остановлена и не отключит гостей .
После установки всех пакетов, указанных в операторе, вы можете выйти из системы, а затем снова войти в нее. Все, что добавляет вас в группы пользователей, необходимо для выхода из системы и входа в нее для добавления в новые группы. Это небольшое неудобство, меньше одного, чем перезагрузка.
Это было помечено как незавершенное, но это общее правило для добавления вашего пользователя в группу. Необходим перелог, это была недостающая часть, которую я не видел здесь.
Начиная с Ubuntu 17.10, мне также пришлось добавить себя в группу libvirt. Я уже добавил себя в libvirtd и не удалил себя из этой группы. Я не знаю, требуются ли оба или нет.
Я сделал это, так как заметил, что содержимое / var / run / libvirt принадлежит libvirt, а не libvirtd.
Альтернативой перезагрузке / выходу из системы является запуск следующих команд из терминала:
newgrp libvirt
virt-manager
Команда newgrp
позволяет пользователю присоединиться к группе libvirt
без выхода из системы для процессов, которые начался в той же оболочке после newgrp
. Конечно, это работает, только если установщик libvirt помещает вас в группу libvirt, которую вы можете проверить с помощью:
getent group libvirt
У меня была такая же проблема, и в подробном отчете об ошибке говорится о недостаточном разрешении файла libvirt-sock
. Изменение разрешения файла /var/run/libvirt/libvirt-sock
на 777 заставило его работать на меня.
Используйте Ubuntu Software для удаления виртуального менеджера, выхода из системы, повторного входа, установки виртуального менеджера и запуска его в обычном режиме без использования sudo или даже с помощью командной строки.
Пользователь в группе libvirt
может запускать virt-manager
и virsh
без sudo
].
$ sudo gpasswd libvirt -a <username>
$ cat <<EOF | tee -a ~/.profile
export VIRSH_DEFAULT_CONNECT_URI=qemu:///system
EOF
$ sudo reboot
Простое решение: перейдите к учетным записям и измените свои группы на обе группы libvirt
.
Это было решением для меня:
sudo apt install libvirt-daemon-system
sudo systemctl start libvirtd
перезапустить систему
Зарегистрированный пользователь должен быть добавлен в libvirt
группу пользователей
sudo usermod -a -G libvirt $USER