На систему, развёрнутую с стартер-кита, установил libvirt-kvm и libvirt-lxc. Запускаю /etc/init.d/libvirtd - демон сообщает в лог об успешном запуске и не работает (завершается). Смотрю, что происходит при запуске - вижу, что как минимум два нужных пакета не установлены по зависимостям: # /usr/sbin/libvirtd -v 2015-12-12 17:54:12.724+0000: 10378: info : libvirt version: 1.0.4, package: alt2 2015-12-12 17:54:12.724+0000: 10378: warning : virDriverLoadModule:72 : Module /usr/lib64/libvirt/connection-driver/libvirt_driver_interface.so not accessible 2015-12-12 17:54:12.724+0000: 10378: warning : virDriverLoadModule:72 : Module /usr/lib64/libvirt/connection-driver/libvirt_driver_xen.so not accessible 2015-12-12 17:54:12.726+0000: 10389: error : dnsmasqCapsRefreshInternal:735 : Cannot check dnsmasq binary /usr/sbin/dnsmasq: Нет такого файла или каталога 2015-12-12 17:54:12.795+0000: 10389: error : dnsmasqCapsRefreshInternal:735 : Cannot check dnsmasq binary /usr/sbin/dnsmasq: Нет такого файла или каталога 2015-12-12 17:54:12.820+0000: 10389: error : virCommandWait:2315 : внутренняя ошибка Child process (/usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf) unexpected exit status 1: libvirt: ошибка : не удалось выполнить /usr/sbin/dnsmasq: Нет такого файла или каталога 2015-12-12 17:54:12.877+0000: 10389: error : virDBusGetSystemBus:86 : внутренняя ошибка Unable to get DBus system bus connection: Failed to connect to socket /var/run/dbus/system_bus_socket: Нет такого файла или каталога 2015-12-12 17:54:12.877+0000: 10389: warning : networkStartup:435 : DBus not available, disabling firewalld support in bridge_driver: внутренняя ошибка Unable to get DBus system bus connection: Failed to connect to socket /var/run/dbus/system_bus_socket: Нет такого файла или каталога 2015-12-12 17:54:12.901+0000: 10389: error : virDBusGetSystemBus:86 : внутренняя ошибка Unable to get DBus system bus connection: Failed to connect to socket /var/run/dbus/system_bus_socket: Нет такого файла или каталога 2015-12-12 17:54:12.909+0000: 10389: error : nwfilterDriverStartup:213 : DBus matches could not be installed. Disabling nwfilter driver 2015-12-12 17:54:12.909+0000: 10389: error : virDBusGetSystemBus:86 : внутренняя ошибка Unable to get DBus system bus connection: Failed to connect to socket /var/run/dbus/system_bus_socket: Нет такого файла или каталога 2015-12-12 17:54:12.909+0000: 10389: error : virStateInitialize:826 : Initialization of NWFilter state driver failed 2015-12-12 17:54:12.909+0000: 10389: error : daemonRunStateInit:880 : Ошибка инициализации состояния драйвера Список пакетов libvirt-* libvirt-client-1.0.4-alt2 libvirt-daemon-config-network-1.0.4-alt2 libvirt-daemon-driver-secret-1.0.4-alt2 libvirt-lxc-1.0.4-alt2 libvirt-daemon-1.0.4-alt2 libvirt-daemon-driver-lxc-1.0.4-alt2 libvirt-daemon-driver-nwfilter-1.0.4-alt2 libvirt-daemon-driver-nodedev-1.0.4-alt2 libvirt-daemon-driver-storage-1.0.4-alt2 libvirt-daemon-driver-qemu-1.0.4-alt2 libvirt-kvm-1.0.4-alt2 libvirt-daemon-driver-network-1.0.4-alt2 libvirt-daemon-config-nwfilter-1.0.4-alt2 libvirt-qemu-common-1.0.4-alt2 В форуме я однажды уже спрашивал, почему в зависимостях к libvirt-daemon нет dnsmasq, ответ от одного из ментейнеров был, что, мол, он может работать и без dnsmasq. Как я вижу тут - не может (как минимум без напильника, который мне неизвестен).
Основная проблема не в отсутствии dnsmasq, а в не запущенном dbus. Unable to get DBus system bus connection: Failed to connect to socket /var/run/dbus/system_bus_socket: Нет такого файла или каталога Как я писал в #31906 я не буду стартовать messagebus из libvirtd.
(В ответ на комментарий №1) > Основная проблема не в отсутствии dnsmasq, а в не запущенном dbus. ... > Как я писал в #31906 я не буду стартовать messagebus из libvirtd. Во-первых, основное в этом багрепорте - не установленный dnsmask. dbus всё же установлен, хотя и по зависимостям от других пакетов. Во-вторых, запустить dbus и поставить ему автозапуск можно руками, что я и сделал тогда. Хорошо бы в стартовом скрипте sysV сделать проверку и выдать ошибку, если dbus не запущен, а в конфиге systemd можно просто указать зависимость запуска.
для systemd в libvirtd.service указано After=dbus.service, там проблем быть не должно.
1) libvirtd может работать без dnsmasq 2) libvirtd не может работать без dbus. посмотрю как лучше тут поступить.
(В ответ на комментарий №4) > 1) libvirtd может работать без dnsmasq "Из коробки" не работает. Если считаете, что зависимость у libvirt-daemon-config-network от dnsmasq ставить не нужно - хорошо, тогда нужно изменить конфигурацию libvirt, устанавливаемую с пакетом. Варианты: - сделать сеть default изолированной либо маршрутизируемой; - убрать autostart у сети default, это проще - убираем из спека строку ln -s ../default.xml /etc/libvirt/qemu/networks/autostart/default.xml Одновременно хорошо бы внести в документацию предупреждение о необходимости dnsmasq для типа сети "nat".
Делаю следующее(надеюсь устроит всех): 1) убираю из спека ln -s ../default.xml /etc/libvirt/qemu/networks/autostart/default.xml т.е. после установки никакая сеть сама стартовать не будет. И это правильно. У кого уже есть такой симлинк, но сеть default ему не нужна, придется удалить самостоятельно. 2) зависимость на dnsmasq добавил в пакет libvirt-daemon-config-network. т.к. автостарта сети default нет, сам он стартовать не будет. сервис dnsmasq по умолчанию тоже не стартует. Но ничего не должно мешать libvirt создать виртуальную сеть с раздачей алресов по dhcp с помощью dnsmasq. весит он около 300кб, проблем создать не должен. 3) добавлена зависимость на dbus в пакет libvirt-daemon, теперь он должен стартовать без проблем. 4) работа без polkit по-прежнему возможна, поэтому его не добавляю в зависимости. Если нет возражений, отправлю в таком виде в сизиф.
тестовое задание #162000
(В ответ на комментарий №7) > тестовое задание #162000 Проверил, с qemu работает сразу после установки.
исправлено в 1.3.2-alt2