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 кореневий libvirtd 0 комплект 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якщо ви хочете, щоб він почався при запуску.
пр.

Відповіді:


50

Перезавантаження системи, де virt-managerвстановлено, вирішило проблему.


18
не типове рішення для Linux!
Woeitg

1
16.04 його libvirt-bin .service not libvirtd .service, якщо вам цікаво. Значить, демон там.
Булат М.

1
Зазвичай просто виходу / входу в цьому випадку повинно бути достатньо для того, щоб зміни членського складу в групі поширилися на поточний сеанс, але для мене особисто немає великої різниці між повторним входом та перезавантаженням (викликає дуже подібні перебої; перезавантаження займає приблизно приблизно 7 секунд довше), так Я скоріше використовував перезавантаження "про всяк випадок".
Ped7g

"Ви намагалися вимкнути його та знову ввімкнути?"
tisaconundrum

33

Після встановлення KVM запустіть цю команду, після чого ця помилка не повториться.

sudo virt-manager

ого !!! Що це, як це працювало?
Кішор Павар

Це працювало через sudo. читайте пояснення в іншій відповіді ask.fedoraproject.org/en/question/45805/…
Кішор Павар

Повинна бути відповідь прийнятої.
Магно C

1
Він працює, але потрібен корінь для використання. Я хочу використовувати його від звичайного користувача. Що я можу зробити для цього?
Puneet Dixit

4
Як заявляє @ andrew-traveo, вам потрібно вийти з системи / увійти, щоб застосувати зміни до членства в групі. Використовувати 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-менеджер:

sudo service libvirt-bin start


5

У Ubuntu 16.04.3 LTS

systemctl start virtlogd.socket

була єдиною відповіддю. Розетка має свій демон. Це незвично.


1

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

Це було позначено як неповне, однак це стосується загального правила додавання користувача до групи. Потрібен перегляд, це була частина, якої я тут не бачив.


1
Ласкаво просимо до Ask Ubuntu! У своїй нинішній формі ваша відповідь не така хороша, як могла б бути. Чи можете ви переглянути, як написати хорошу відповідь та посібник зі стилями для запитань та відповідей . Ви можете уточнити, які пакунки потрібно встановити.
Дж. Старнес

1

Альтернативою перезавантаження / виходу є виконання наступних команд з терміналу:

newgrp libvirt
virt-manager

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

getent group libvirt

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 гостей .


0

Станом на Ubuntu 17.10, мені довелося також додати себе до групи libvirt. Я вже додав себе до libvirtd і не видаляв себе з цієї групи. Я не знаю, чи потрібно обоє, чи ні.

Я робив це, оскільки помітив, що вміст / var / run / libvirt був власником libvirt, а не libvirtd.


Щоб бути повноцінною відповіддю, потрібно сказати, як додати себе до зайвих груп.
pbhj

-1

У мене була ця сама проблема, і в детальному звіті про помилку йдеться про відсутність дозволу на libvirt-sockфайл. Зміна дозволу на файл /var/run/libvirt/libvirt-sockна 777 змусила мене працювати.


3
Зміна масок дозволу на 0777 погано . Не рекомендуйте потенційно шкідливих дій, не пояснюючи наслідків! -1
Девід Фоерстер

-1

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


1
Ви можете покращити свою відповідь, розкривши, чому ці кроки необхідні замість простої перевстановлення. Або слідуючи одній з інших відповідей. З перегляду
Дж. Старнес
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.