Ошибка «task error start failed: QEMU exited with code 1» появляется при запуске виртуальной машины или узла эмулятора, когда процесс QEMU завершается сразу после старта, не успев инициализировать гостевую систему. Код выхода 1 означает общую ошибку запуска, и сам по себе он не указывает причину — её нужно искать в логах гипервизора и параметрах запуска.
Проблема встречается в разных средах: в сетевых эмуляторах GNS3 и EVE-NG, в гипервизоре Proxmox VE, а также при ручном запуске виртуальных машин через qemu-system-x86_64 или libvirt. Ниже разберём типичные причины и безопасные способы диагностики, которые применимы независимо от конкретной платформы.
Что означает код выхода 1 у QEMU
Код возврата 1 — это стандартный сигнал оболочки о том, что программа завершилась с ошибкой. QEMU падает с таким кодом, когда не может выполнить одну из критичных операций на этапе запуска: открыть образ диска, выделить память, получить доступ к устройству виртуализации или распарсить аргументы командной строки.
Важно понимать: сам текст «task error start failed» — это сообщение оболочки-оркестратора (GNS3, EVE-NG, Proxmox), а не QEMU. Реальную причину содержит вывод stderr процесса QEMU или лог виртуальной машины. Именно туда и нужно смотреть в первую очередь.
Основные причины ошибки
Проверки стоит выполнять в порядке от самых частых причин к редким. Большинство случаев связано с образами дисков и виртуализацией, а не с «битым» QEMU.
- 🔒 Виртуализация отключена в BIOS/UEFI — не работают расширения Intel VT-x или AMD-V, и QEMU не может запуститься с ускорением KVM.
- 📁 Отсутствует или повреждён образ диска — файл
.qcow2или.imgудалён, перемещён или недокачан. - 🔐 Недостаточно прав доступа — пользователь не входит в группу
kvmили у процесса нет прав на чтение образа. - 💾 Нехватка оперативной памяти — хост не может выделить запрошенный объём RAM для виртуальной машины.
- ⚙️ Конфликт параметров запуска — несовместимые опции CPU, типа машины или устройств в конфигурации узла.
Шаг 1: Проверка поддержки виртуализации
Первая проверка — доступность аппаратной виртуализации. На хосте с Linux выполните команду:
ls /dev/kvm && egrep -c '(vmx|svm)' /proc/cpuinfo
Если файл /dev/kvm отсутствует, а счётчик возвращает 0, значит, виртуализация либо отключена в BIOS/UEFI, либо не поддерживается процессором. Вам нужно зайти в настройки прошивки материнской платы и включить опцию Intel VT-x, AMD-V или SVM Mode — точное название и расположение пункта зависят от производителя платы, поэтому сверьтесь с её документацией.
Если хост сам является виртуальной машиной (например, EVE-NG развёрнут внутри VMware или Hyper-V), потребуется включить вложенную виртуализацию (nested virtualization) в настройках родительского гипервизора. Без неё KVM внутри гостя работать не будет.
⚠️ Внимание: если виртуализация недоступна, некоторые образы всё же запускаются в режиме чистой эмуляции (TCG), но очень медленно. Не путайте медленную работу с ошибкой запуска — это разные ситуации.
Шаг 2: Проверка образа диска и путей
Вторая по частоте причина — проблемы с файлом образа. Убедитесь, что файл существует по указанному в конфигурации пути и не повреждён. Проверить целостность образа qcow2 можно командой:
qemu-img check /путь/к/образу.qcow2
Также проверьте права доступа: процессу QEMU нужны права на чтение образа и, при необходимости, на запись. Если вы запускаете узел от обычного пользователя, убедитесь, что он входит в группу kvm — это проверяется командой groups.
☑️ Проверка перед запуском узла
Шаг 3: Анализ логов
Чтобы увидеть настоящую причину сбоя, откройте лог конкретной виртуальной машины. Расположение зависит от платформы:
| Платформа | Где искать лог |
|---|---|
| Proxmox VE | /var/log/pve/tasks/ и журнал задачи в веб-интерфейсе |
| GNS3 | консоль GNS3 и логи сервера в каталоге проекта |
| EVE-NG | вывод в интерфейсе узла и системный журнал journalctl |
| libvirt | /var/log/libvirt/qemu/имя_вм.log |
Ищите в логе строки с текстом error, failed или could not — они обычно прямо называют проблемный ресурс: файл, устройство или параметр. Если лог пуст или недоступен, попробуйте запустить QEMU вручную с теми же параметрами из терминала — сообщение об ошибке появится прямо в консоли.
Шаг 4: Параметры запуска и память
Когда образ и виртуализация в порядке, причина часто кроется в конфигурации узла. Проверьте объём выделяемой памяти: если суммарное потребление всех запущенных ВМ превышает физическую RAM хоста, новая машина не стартует. Свободную память показывает команда free -h.
Также возможны конфликты параметров: например, указанный тип машины (-machine) несовместим с версией QEMU, или образ требует интерфейс, которого нет в конфигурации. Возможная проверка — временно упростить конфигурацию узла до минимальной (один диск, стандартный тип машины, без дополнительных устройств) и посмотреть, запустится ли он.
⚠️ Внимание: не редактируйте конфигурационные файлы ВМ вручную, пока не сделали их резервную копию. Ошибка в синтаксисе конфига сама по себе приводит к падению QEMU с кодом 1.
Специфика разных платформ
В GNS3 дополнительно проверьте, что в настройках шаблона узла выбран корректный бинарный файл QEMU и версия, совместимая с образом. В EVE-NG обратите внимание на права каталога с образами и на то, что образ размещён в правильной подпапке согласно документации эмулятора — EVE-NG строго следит за структурой каталогов.
В Proxmox VE полезно посмотреть конфигурацию ВМ командой qm config <VMID> и сравнить пути к дискам с фактическим содержимым хранилища. Если хранилище недоступно (например, отмонтирован сетевой диск), QEMU упадёт именно с кодом 1 при попытке открыть образ.
Как запустить QEMU вручную для диагностики
Скопируйте команду запуска из лога или конфигурации, подставьте путь к образу и выполните её в терминале от нужного пользователя. QEMU выведет точную причину сбоя в stderr — например, «Could not open image: Permission denied» или «kvm: module not loaded». Это самый быстрый способ локализовать проблему.
Часто задаваемые вопросы
Что значит «QEMU exited with code 1» простыми словами?
Процесс виртуальной машины завершился сразу после запуска из-за ошибки. Код 1 — общий признак сбоя; конкретную причину нужно смотреть в логе QEMU или в выводе команды запуска.
Может ли ошибка появиться из-за нехватки оперативной памяти?
Да. Если хост не может выделить ВМ запрошенный объём RAM, QEMU завершается с ошибкой. Проверьте свободную память командой free -h и уменьшите выделение в настройках узла.
Образ на месте, виртуализация включена, но ошибка остаётся. Что дальше?
Запустите QEMU вручную с теми же параметрами из терминала — сообщение об ошибке в stderr укажет на конкретный проблемный компонент: файл, устройство или опцию командной строки.
Помогает ли переустановка QEMU?
Редко: в подавляющем большинстве случаев причина в конфигурации, правах доступа или виртуализации, а не в самом пакете. Переустановку имеет смысл рассматривать только если повреждены файлы самого пакета, что видно по ошибкам менеджера пакетов.
Ошибка возникает только для одного узла, остальные работают. В чём дело?
Это почти всегда указывает на проблему конкретного узла: повреждённый образ, неверный путь к файлу или несовместимые параметры запуска. Сравните конфигурацию проблемного узла с рабочим и проверьте его образ через qemu-img check.