Virt-Manager не может подключиться к графической консоли

Со вчерашнего дня я не могу просматривать запущенные виртуальные машины (QEMU/KVM) с моей virt-manager GUI больше нет. Когда я пытаюсь просмотреть экран виртуальной машины во встроенном средстве просмотра, вместо этого появляется следующее сообщение об ошибке:

Ошибка подключения к графической консоли:
внутренняя ошибка: невозможно выполнить команду QEMU 'getfd':
Не указан дескриптор файла через SCM_RIGHTS

Это относится ко всем моим виртуальным машинам.

Я все еще могу правильно просматривать и взаимодействовать с моими виртуальными машинами в virt-viewer хотя, только virt-manager встроенный зритель мертв.

Что здесь не так и как я могу это исправить?

Изменить: я только что узнал, что я использую virt-manager версия 1:1.4.0-1~getdeb1 из архива.getdeb.net репо.

4 ответа

Решение

Работая над попыткой слить последнюю версию virt-manager 1.4.0 с Ubuntu, я столкнулся с этой же проблемой. Похоже, это не ошибка в virt-manager, а просто изменение способа отправки отображаемых данных на виртуальные машины.

Я открыл ошибку, чтобы добавить необходимые разрешения для libvirt, где определяются профили apparmor - https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1668681

Чтобы устранить эту проблему, не отключая функцию безопасности, добавьте:

# allow connect with openGraphicsFD to work
unix (send, receive) type=stream addr=none peer=(label=/usr/sbin/libvirtd),

в файл /etc/apparmor.d/abstractions/libvirt-qemu но не в разделе qemu-bridge-helper. (Так сразу после "owner @{PROC}/0-9*/fd/ r,")

Затем перезагрузите профили с sudo systemctl reload apparmor,

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

В моем случае, это был аппарат, предотвращающий доступ. Генератор магических профилей apparmour не работает должным образом. Мой обходной путь заключается в следующем.

После запуска экземпляра KVM и получения ошибки я сделал:

$sudo apparmour_status

который перечислил профиль, вызвавший проблему,

libvirt-<some long key> 

Затем я установил профиль apparmour, чтобы жаловаться вместо принудительного применения:

$sudo aa-complain /etc/apparmor.d/libvirt/libvirt-<some long key>

Теперь я больше не получаю ошибку. Надеюсь, что этот конфликт будет исправлен.

Я не мог воспроизвести проблему, но были обновления для libvirt 5 октября:

libvirt-bin-1.3.1-1ubuntu10.2 был повышен до libvirt-bin-1.3.1-1ubuntu10.3
libvirt0-1.3.1-1ubuntu10.2 был повышен до libvirt01.3.1-1ubuntu10.3

Если вы не меняли какие-либо настройки или что-то еще, скорее всего, что-то пошло не так во время процесса обновления. Полностью удалить все virt-manager связанные пакеты и переустановите их.

sudo apt purge libvirt-bin libvirt-glib libvirt0 virt-manager virt-viewer virtinst  
sudo apt install libvirt-bin libvirt-glib libvirt0 virt-manager virt-viewer virtinst  

Перезагрузите операционную систему хоста - теперь все должно работать правильно, как раньше.

Похоже, ошибка в virt-manager версия 1:1.4.0-1~getdeb1 с http://getdeb.net/.

Снова понизить пакет до последней версии, доступной в официальных репозиториях (1:1.3.2-3ubuntu1.16.04.2 от xenial-updates) исправляет это.

Обновление: версия 1:1.4.0-1~getdeb2 еще не решил эту проблему.

Другие вопросы по тегам