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
еще не решил эту проблему.