Не удалось проверить возможности для /usr/local/bin/qemu-system-x86_64: внутренняя ошибка: не удалось запустить бинарный файл QEMU.

Вопрос или проблема

Я только что запустил “virt-manager” на своем Ubuntu 21.04 и, к своему большому удивлению, увидел ошибку “kvm недоступен. Это может означать, что пакет kvm не установлен и так далее“; это не так. Я установил kvm, и он работает отлично, как вы можете увидеть на изображении ниже:

enter image description here

Посмотрите, что говорит терминал: “/dev/kvm существует; ускорение kvm может быть использовано“. Во что мне верить? Чего не хватает?

# apt install qemu-kvm libvirt-clients libvirt-daemon-system

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'qemu-system-x86' instead of 'qemu-kvm'
qemu-system-x86 is already the newest version (1:5.2+dfsg-9ubuntu3.1).

libvirt-clients is already the newest version (7.0.0-2ubuntu2).
libvirt-daemon-system is already the newest version (7.0.0-2ubuntu2).
0 upgraded, 0 newly installed, 0 to remove and 11 not upgraded.

# virt-host-validate

  QEMU: Проверка аппаратной виртуализации                                 : PASS
  QEMU: Проверка, существует ли устройство /dev/kvm                       : PASS
  QEMU: Проверка, доступно ли устройство /dev/kvm                         : PASS
  QEMU: Проверка, существует ли устройство /dev/vhost-net                 : PASS
  QEMU: Проверка, существует ли устройство /dev/net/tun                   : PASS
  QEMU: Проверка поддержки контроллера cgroup 'cpu'                       : PASS
  QEMU: Проверка поддержки контроллера cgroup 'cpuacct'                   : PASS
  QEMU: Проверка поддержки контроллера cgroup 'cpuset'                    : PASS
  QEMU: Проверка поддержки контроллера cgroup 'memory'                    : PASS
  QEMU: Проверка поддержки контроллера cgroup 'devices'                   : PASS
  QEMU: Проверка поддержки контроллера cgroup 'blkio'                     : PASS
  QEMU: Проверка поддержки назначения устройств IOMMU                     : PASS
  QEMU: Проверка, включен ли IOMMU ядром                                  : PASS
  QEMU: Проверка поддержки защищенных гостей                              : WARN (Неизвестно, есть ли на этой платформе поддержка Secure Guest)
   LXC: Проверка, Linux >= 2.6.26                                          : PASS
   LXC: Проверка пространства имен ipc                                     : PASS
   LXC: Проверка пространства имен mnt                                     : PASS
   LXC: Проверка пространства имен pid                                     : PASS
   LXC: Проверка пространства имен uts                                     : PASS
   LXC: Проверка пространства имен net                                     : PASS
   LXC: Проверка пространства имен user                                    : PASS
   LXC: Проверка поддержки контроллера cgroup 'cpu'                       : PASS
   LXC: Проверка поддержки контроллера cgroup 'cpuacct'                   : PASS
   LXC: Проверка поддержки контроллера cgroup 'cpuset'                    : PASS
   LXC: Проверка поддержки контроллера cgroup 'memory'                    : PASS
   LXC: Проверка поддержки контроллера cgroup 'devices'                   : PASS
   LXC: Проверка поддержки контроллера cgroup 'freezer'                   : PASS
   LXC: Проверка поддержки контроллера cgroup 'blkio'                     : PASS
   LXC: Проверка, существует ли устройство /sys/fs/fuse/connections       : PASS

Опять:

● libvirtd.service - демон виртуализации
     Loaded: загружено (/lib/systemd/system/libvirtd.service; включено; предустановка вендора: включено)
     Active: активно (работает) с Ср. 2021-07-28 13:18:31 CEST; прошло 41 мин
TriggeredBy: ● libvirtd-admin.socket
             ● libvirtd-ro.socket
             ● libvirtd.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 2091 (libvirtd)
      Tasks: 21 (лимит: 32768)
     Memory: 49.3M
     CGroup: /system.slice/libvirtd.service
             ├─2091 /usr/sbin/libvirtd
             ├─2405 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-шаблон=/usr/lib/libvirt/libvirt_leaseshelper
             └─2406 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-шаблон=/usr/lib/libvirt/libvirt_leaseshelper

Jul 28 12:45:30 Z390-AORUS-PRO libvirtd[2091]: внутренняя ошибка: Не удалось запустить бинарный файл QEMU /usr/local/bin/qemu-system-x86_64 для тестирования: libvirt: ошибка: невозможно исполнить бинарный файл /usr/local/bin/qemu-system-x86_64: Отказано в доступе
Jul 28 12:45:30 Z390-AORUS-PRO libvirtd[2091]: Не удалось исследовать функции для /usr/local/bin/qemu-system-x86_64: внутренняя ошибка: Не удалось запустить бинарный файл QEMU /usr/local/bin/qemu-system-x86_64 для тестирования: libvirt: ошибка: невозможно исполнить бинарный файл /usr/local/bin/qemu-system-x86_64: Отказано в доступе
Jul 28 13:58:54 Z390-AORUS-PRO libvirtd[2091]: внутренняя ошибка: драйвер состояния libxenlight не активен
Jul 28 13:58:54 Z390-AORUS-PRO libvirtd[2091]: Конец файла при чтении данных: Ошибка ввода/вывода
Jul 28 13:58:54 Z390-AORUS-PRO libvirtd[2091]: неверный аргумент: не удалось найти возможности для arch=x86_64 domaintype=qemu 
Jul 28 13:58:54 Z390-AORUS-PRO libvirtd[2091]: внутренняя ошибка: Не удается найти подходящий эмулятор для x86_64
Jul 28 13:58:54 Z390-AORUS-PRO libvirtd[2091]: внутренняя ошибка: Не удалось запустить бинарный файл QEMU /usr/local/bin/qemu-system-x86_64 для тестирования: libvirt: ошибка: невозможно исполнить бинарный файл /usr/local/bin/qemu-system-x86_64: Отказано в доступе
Jul 28 13:58:54 Z390-AORUS-PRO libvirtd[2091]: Не удалось исследовать функции для /usr/local/bin/qemu-system-x86_64: внутренняя ошибка: Не удалось запустить бинарный файл QEMU /usr/local/bin/qemu-system-x86_64 для тестирования: libvirt: ошибка: невозможно исполнить бинарный файл /usr/local/bin/qemu-system-x86_64: Отказано в доступе
Jul 28 13:59:06 Z390-AORUS-PRO libvirtd[2091]: внутренняя ошибка: Не удалось запустить бинарный файл QEMU /usr/local/bin/qemu-system-x86_64 для тестирования: libvirt: ошибка: невозможно исполнить бинарный файл /usr/local/bin/qemu-system-x86_64: Отказано в доступе
Jul 28 13:59:06 Z390-AORUS-PRO libvirtd[2091]: Не удалось исследовать функции для /usr/local/bin/qemu-system-x86_64: внутренняя ошибка: Не удалось запустить бинарный файл QEMU /usr/local/bin/qemu-system-x86_64 для тестирования: libvirt: ошибка: невозможно исполнить бинарный файл /usr/local/bin/qemu-system-x86_64: Отказано в доступе

Начнем с очевидного.

невозможно исполнить бинарный файл /usr/local/bin/qemu-system-x86_64: Отказано в доступе

Попробуйте остановить AppArmor, затем перезапустите libvirtd и снова запустите virt-manager

sudo systemctl stop apparmor

Ответ или решение

Ошибка, с которой вы столкнулись, часто возникает в среде виртуализации при использовании KVM и QEMU на Ubuntu 21.04. Давайте разберёмся, что происходит и какие шаги помогут её устранить.

Проблемы и их возможные причины

  1. Ошибка прав доступа: Конкретно в вашем случае сообщение "Permission denied" указывает на то, что текущий пользователь или процесс не имеют нужных прав для выполнения файла /usr/local/bin/qemu-system-x86_64. Это может быть связано с неправильными правами доступа или политиками безопасности.

  2. AppArmor: Как вы верно заметили, AppArmor может блокировать выполнение данного бинарного файла. Это система защиты на уровне ОС, готовая предотвратить несанкционированный доступ или выполнение программ.

  3. Указание пути до QEMU: Ваша установка QEMU может использовать нестандартный путь, что иногда приводит к конфликтам, если компоненты обращаются не к той версии бинарного файла.

Решения

  1. Проверка прав доступа: Убедитесь, что бинарный файл qemu-system-x86_64 имеет правильные права доступа.

    sudo chmod +x /usr/local/bin/qemu-system-x86_64
    sudo chown root:root /usr/local/bin/qemu-system-x86_64
  2. Конфигурация AppArmor: Moжет потребоваться временно отключить AppArmor для проверки, влияeт ли он на выполнение.

    sudo systemctl stop apparmor

    После проверки, не забудьте снова активировать AppArmor:

    sudo systemctl start apparmor
  3. Перезапуск libvirtd: Перезапустите демона libvirt, чтобы убедиться, что изменения вступили в силу.

    sudo systemctl restart libvirtd
  4. Проверка путей: Убедитесь, что конфигурация libvirt и virt-manager правильно указывает на используемый бинарный файл QEMU.

    which qemu-system-x86_64

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

  5. Журналы и отладка: Проверьте журналы systemd и libvirt для получения дополнительных подсказок, где конкретно могут возникать ошибки.

    journalctl -xe
    sudo journalctl -u libvirtd

Вывод

Проблема, с которой вы столкнулись, как правило, связана с правами доступа или политиками безопасности, такими как AppArmor. Следуя вышеуказанным шагам, вы сможете локализовать источник проблемы и устранить его. Если ни одно из решений не помогает, рассмотрите возможность установки свежей версии QEMU и Libvirt из других репозиториев или используйте средства отладки для выявления деталей.

Оцените материал
Добавить комментарий

Капча загружается...