Proxmox не запускается виртуальная машина: диагностика и решения

Команда 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.

📊 С какой ошибкой вы столкнулись при запуске ВМ в Proxmox?
Недоступно хранилище/диск
Не хватает памяти или CPU
Ошибка KVM/виртуализации
Зависший lock после сбоя

Ошибки 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.

☑️ Быстрая проверка перед запуском ВМ

Выполнено: 0 / 5

Сводная таблица типовых ошибок

Текст ошибкиВероятная причинаЧто проверить
storage is not availableОтвалилось хранилище NFS/iSCSI/LVMpvesm 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 после смены ядра. Эти проблемы решаются настройкой, без отката системы.