Команда qm start 100 возвращает ошибку, а виртуальная машина в Proxmox остаётся в статусе stopped — чаще всего причина кроется в недоступном хранилище, нехватке оперативной памяти на узле или конфликте конфигурации после миграции. Хорошая новость: Proxmox почти всегда сообщает причину отказа в явном виде — нужно только знать, где смотреть.
В этой статье разберём типовые ошибки запуска ВМ в Proxmox VE, порядок диагностики через веб-интерфейс и консоль, а также способы восстановить работу виртуальной машины без потери данных. Материал подходит для версий Proxmox VE 7.x и 8.x — команды управления ВМ в них идентичны.
Как понять причину: читаем логи и статус ВМ
Первый шаг — не перезагружать узел, а посмотреть, что именно пишет гипервизор. Откройте в веб-интерфейсе нужную ВМ и перейдите на вкладку Task History внизу страницы: там будет задача VM start со статусом ошибки и текстом причины. Двойной клик по задаче покажет полный вывод.
Если удобнее консоль, подключитесь к узлу по SSH и выполните запуск вручную — ошибка выведется прямо в терминал:
qm start 100
Здесь 100 — это VMID вашей виртуальной машины. Дополнительно полезно проверить текущее состояние и логи:
qm status 100
journalctl -u pve-guests -n 100
Недоступно хранилище или файл диска
Самая частая причина отказа — Proxmox не может найти или открыть диск виртуальной машины. Типичные сообщения: storage 'local-lvm' is not available, no such volume или Could not open image. Такое происходит, если внешнее хранилище (NFS, iSCSI, Ceph) не смонтировалось, том был удалён или LVM-пул не активировался после перезагрузки узла.
Проверьте статус хранилищ в разделе Datacenter → Storage: недоступное хранилище будет подсвечено. В консоли состояние LVM-томов показывает команда:
lvs
pvesm status
- 🔍 Убедитесь, что сетевое хранилище доступно:
pingдо сервера NFS/iSCSI и проверка монтирования черезmount | grep pve. - 💾 Проверьте, что диск ВМ существует:
qm config 100покажет пути к томам — сверьте их с выводомlvsили содержимым каталога хранилища. - 🔌 Если хранилище временно недоступно, восстановите связь с ним до запуска ВМ — принудительный старт с «битым» диском может повредить файловую систему гостя.
⚠️ Внимание: не удаляйте и не пересоздавайте тома LVM, пока не убедитесь, что диск ВМ действительно потерян, а не просто не активирован. Восстановление удалённого тома — задача существенно более сложная, чем активация существующего.
Нехватка оперативной памяти и ресурсов узла
Виртуальная машина не стартует, если на узле физически не хватает свободной памяти под её конфигурацию. Ошибка обычно выглядит как vm 100 - unable to start: out of memory или зависание задачи на этапе выделения ресурсов. Особенно это актуально для ВМ с включённым ballooning, где минимальное значение памяти задано слишком высоким.
Проверьте свободную память на узле командой free -h и сравните с объёмом, выделенным ВМ (qm config 100 | grep memory). Если памяти впритык — временно уменьшите объём для ВМ в разделе Hardware → Memory или остановите менее приоритетные машины.
Отдельный случай — hugepages и NUMA-привязки: если в конфигурации ВМ включены hugepages, а на узле они не настроены или заняты, запуск будет отклонён даже при формально свободной памяти. Проверить можно через cat /proc/meminfo | grep -i huge.
Ошибки KVM и аппаратной виртуализации
Сообщения вида kvm: -cpu host: check failed, could not open /dev/kvm или No accelerator found указывают на проблему с модулем виртуализации. Частая причина — после обновления ядра или перезагрузки не загрузился модуль KVM, либо в BIOS/UEFI сервера отключена поддержка виртуализации (Intel VT-x / AMD-V).
Диагностика выполняется так:
ls -l /dev/kvm
lsmod | grep kvm
kvm-ok
Если устройства /dev/kvm нет — загрузите модуль вручную (modprobe kvm_intel для Intel или modprobe kvm_amd для AMD) и проверьте настройки BIOS. Также убедитесь, что тип процессора ВМ (поле CPU → Type) совместим с текущим узлом: тип host не сработает, если ВМ перенесли на сервер с другим поколением CPU.
ВМ не стартует после миграции на другой узел
Проверьте три вещи: совместимость типа CPU (смените host на x86-64-v2-AES или аналог, если узлы разные), наличие на целевом узле всех проброшенных PCI-устройств и USB, а также доступность хранилища, на котором лежит диск. Конфиг ВМ при миграции переносится как есть, и ссылки на отсутствующее оборудование блокируют запуск.
Зависший lock и некорректное завершение
После аварийного отключения узла или принудительной остановки ВМ в конфигурации может остаться блокировка. При попытке старта вы увидите vm is locked или can't lock file. Это защитный механизм: Proxmox считает, что над машиной уже выполняется операция (миграция, бэкап, снапшот).
Сначала убедитесь, что ВМ действительно не работает — qm status 100 должна показать stopped. Если процессов qemu для этой ВМ нет (ps aux | grep kvm | grep 100), снимите блокировку:
qm unlock 100
После этого запускайте машину обычным способом. Если же процесс qemu завис, завершите его через kill по PID и только потом снимайте lock.
⚠️ Внимание: не снимайте блокировку, если реально идёт миграция или резервное копирование этой ВМ — прерывание операции может повредить диск. Проверьте список активных задач узла перед qm unlock.
Проблемы конфигурации и passthrough-устройств
Ошибки вида hostpci0: unable to parse, no such device или отказ при старте с проброшенной видеокартой говорят о том, что ВМ ссылается на PCI/USB-устройство, которого нет на узле. Это случается после замены оборудования, переноса ВМ или сбоя привязки VFIO.
Откройте конфигурацию ВМ — файл /etc/pve/qemu-server/100.conf или раздел Hardware в веб-интерфейсе. Временно удалите или закомментируйте строки hostpci, usb и args с нестандартными параметрами, затем попробуйте запустить машину. Если старт прошёл — возвращайте устройства по одному, проверяя доступность через lspci.
☑️ Быстрая проверка перед запуском ВМ
Сводная таблица типовых ошибок
| Текст ошибки | Вероятная причина | Что проверить |
|---|---|---|
| storage is not available | Отвалилось хранилище NFS/iSCSI/LVM | pvesm status, монтирование, сеть |
| vm is locked | Зависшая операция после сбоя | qm status, затем qm unlock |
| could not open /dev/kvm | Не загружен модуль KVM, отключена виртуализация | lsmod, настройки BIOS |
| out of memory | Нехватка RAM на узле | free -h, уменьшить память ВМ |
| no such volume / image | Диск удалён или не активирован том | lvs, qm config |
Часто задаваемые вопросы
ВМ не запускается после перезагрузки сервера Proxmox — что делать в первую очередь?
Проверьте, поднялись ли хранилища (pvesm status) и загружен ли модуль KVM (ls /dev/kvm). После перезагрузки чаще всего «отваливаются» сетевые хранилища и LVM-пулы — как только они станут доступны, ВМ запустится штатно.
Можно ли запустить ВМ, если её диск находится на недоступном хранилище?
Нет, без доступа к диску запуск невозможен. Варианты: восстановить связь с хранилищем или восстановить ВМ из резервной копии (qmrestore) на доступное хранилище.
Ошибка «TASK ERROR: VM 100 qmp command 'query-status' failed» — это критично?
Обычно это следствие, а не причина: процесс qemu упал или завис. Смотрите полный лог задачи и вывод dmesg | tail — там будет исходная ошибка (память, диск, устройство).
Как запустить ВМ, если веб-интерфейс Proxmox недоступен?
Подключитесь к узлу по SSH и выполните qm start 100, подставив свой VMID. Список всех машин с их идентификаторами покажет команда qm list.
После обновления Proxmox ВМ перестала стартовать — откатывать обновление?
Откат — крайняя мера. Сначала проверьте текст ошибки: чаще всего дело в несовместимости типа CPU, изменении путей хранилища или незагруженном модуле KVM после смены ядра. Эти проблемы решаются настройкой, без отката системы.