Гипервизор не получает ответ от гостевого агента
Гостевой агент даёт гипервизору корректное выключение, снимки с согласованной файловой системой и сведения о машине. Без него выключение превращается в отключение питания. Причина отсутствия ответа обычно проще, чем кажется: нет устройства связи или служба не запущена.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Устройство связи с гипервизором отсутствует
Агент общается через специальное устройство. Если оно не добавлено в описание виртуальной машины, служба не запускается.
-
Служба не включена в автозапуск
Агент установлен, но не включён. После перезагрузки гостя управление снова не работает.
-
Изоляция unit-файла закрывает доступ к устройству
Параметры приватного каталога устройств прячут устройство связи от процессов службы.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Есть ли устройство связи с гипервизором.
ls -l /dev/virtio-ports/ 2>/dev/nullСостояние службы агента.
systemctl status qemu-guest-agent --no-pager | head -8Сообщения агента при запуске.
journalctl -u qemu-guest-agent -n 20 --no-pagerРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- Агент общается через специальное устройство. Если оно не добавлено в описание виртуальной машины, служба не запускается.
- Как проверить
-
Посмотрите устройство и состояние службы.
ls -l /dev/virtio-ports/ 2>/dev/null || echo устройства нет systemctl status qemu-guest-agent --no-pager 2>/dev/null | head -6
- Как исправить
- Добавьте устройство связи в описание виртуальной машины на стороне гипервизора. Без него агент внутри бесполезен.
- Почему происходит
- Агент установлен, но не включён. После перезагрузки гостя управление снова не работает.
- Как проверить
-
Посмотрите состояние включения.
systemctl is-enabled qemu-guest-agent 2>/dev/null; systemctl is-active qemu-guest-agent 2>/dev/null
- Как исправить
-
Включите службу в автозапуск. Установка пакета не всегда включает её автоматически.
sudo systemctl enable --now qemu-guest-agent
- Почему происходит
- Параметры приватного каталога устройств прячут устройство связи от процессов службы.
- Как проверить
-
Посмотрите параметры изоляции службы.
systemctl show qemu-guest-agent -p PrivateDevices -p DeviceAllow 2>/dev/null
- Как исправить
- Разрешите устройство связи в списке устройств службы. Отключать изоляцию целиком не требуется.
Пример вывода
Устройство связи не добавлено в описание машины. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
systemd[1]: qemu-guest-agent.service: Main process exited, code=exited, status=1/FAILURE
qemu-ga[8500]: critical error: error opening channel: No such file or directory
systemd[1]: qemu-guest-agent.service: Failed with result 'exit-code'.
Связанные ошибки
- Служба ждёт устройство: device-unit не появляется Зависимость от .device не выполняется: устройства нет, оно не размечено, или ядро не сообщило о нём.
- openvpn: Cannot open TUN/TAP dev /dev/net/tun Служба не может открыть устройство туннеля: нет модуля, нет устройства в контейнере или мешает изоляция unit-файла.
- libvirtd: служба выключена, но виртуальные машины управляются Служба в состоянии inactive, а команды работают: включена активация по сокету. Как это устроено и что включать.
- systemd-udevd: timeout killing worker и медленная загрузка Обработка устройств висит: рабочий процесс udev не укладывается в таймаут. Разбор для дисков и сетевых карт.
- Загрузка задерживается на ожидании случайных чисел Служба ждёт минуты при старте: генератору случайных чисел не хватает энтропии, что заметно в виртуальных машинах.
- Интерфейс не переименовался: имя занято другим устройством Сеть не поднимается после загрузки: правило переименования не применилось, интерфейс сохранил временное имя.
- Медиасервер не использует ускорение: нет доступа к устройству Перекодирование идёт процессором: служба не видит устройство ускорения из-за прав или изоляции.
- Служба не останавливается при отключении устройства Устройство отключено, служба продолжает работать и сыпать ошибками: связь с устройством не объявлена.
Источники
- Документация QEMU: гостевой агент
-
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Воспроизведено запуском агента в машине без устройства связи.