Proxmox: автозапуск виртуальной машины — полная настройка

После перезагрузки хоста Proxmox VE виртуальная машина с выключенной опцией Start at boot останется остановленной, и все сервисы внутри неё будут недоступны до ручного запуска. Проверить текущее состояние можно прямо в веб-интерфейсе: выберите ВМ, откройте вкладку Options и посмотрите значение параметра Start at boot — если там стоит No, автозапуск не сработает.

В этой статье разберём, как включить автозапуск виртуальной машины в Proxmox через графический интерфейс и командную строку, как настроить порядок загрузки нескольких ВМ, задержки старта и завершения работы, а также что проверить, если автозапуск не срабатывает.

Как включить автозапуск ВМ через веб-интерфейс

Самый простой способ — настройка через веб-панель Proxmox VE. Вам нужно выбрать виртуальную машину в левой панели, перейти на вкладку Options и дважды кликнуть по строке Start at boot. В появившемся окне установите галочку и сохраните изменения кнопкой OK.

Изменение применяется сразу, перезапускать ВМ или хост не требуется. Параметр записывается в конфигурационный файл виртуальной машины, который хранится на узле кластера в каталоге /etc/pve/qemu-server/ под именем <VMID>.conf.

☑️ Включение автозапуска ВМ в Proxmox

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

Настройка порядка загрузки и задержек

Когда виртуальных машин несколько, важен не только факт автозапуска, но и очерёдность. Например, сначала должна стартовать ВМ с сетевым хранилищем или контроллером домена, а уже потом — зависимые от неё сервисы. Для этого в Proxmox VE предусмотрены параметры на той же вкладке Options.

  • 🔢 Start/Shutdown order — приоритет запуска: машины с меньшим номером стартуют раньше, а выключаются в обратном порядке.
  • ⏱️ Startup delay — задержка в секундах перед запуском следующей ВМ после старта текущей.
  • 🛑 Shutdown timeout — время ожидания корректного завершения работы ВМ перед принудительной остановкой.

Задержки особенно полезны, когда гостевой системе требуется время на инициализацию служб. Если зависимая ВМ стартует слишком рано, её приложения могут не найти нужные ресурсы и завершиться с ошибкой.

📊 Как вы обычно настраиваете автозапуск ВМ в Proxmox?
Через веб-интерфейс
Через qm set в консоли
Правлю конфиг вручную
Использую HA в кластере

Автозапуск через командную строку

Администраторам, управляющим хостом по SSH, удобнее использовать утилиту qm. Включить автозапуск для ВМ с идентификатором 100 можно одной командой:

qm set 100 --onboot 1

Чтобы задать порядок загрузки и задержку, добавьте соответствующие параметры:

qm set 100 --startup order=1,up=30,down=60

Здесь order=1 задаёт очерёдность, up=30 — задержку после старта в секундах, down=60 — таймаут завершения работы. Проверить итоговую конфигурацию можно командой qm config 100: в выводе появятся строки onboot: 1 и startup.

Сравнение способов настройки

Обе методики приводят к одному результату — изменению конфигурационного файла ВМ. Различия касаются удобства и сценариев применения.

КритерийВеб-интерфейсКомандная строка
Скорость для одной ВМВысокаяСредняя
Массовая настройкаНеудобноЛегко скриптуется
НаглядностьВсе параметры видны сразуТребуется qm config
Доступ без браузераНетДа, по SSH
Риск ошибкиМинимальныйЗависит от внимательности

Автозапуск в кластере и роль HA

В кластерной конфигурации Proxmox VE поведение автозапуска может измениться, если виртуальная машина добавлена в HA (High Availability). В этом случае запуском и мониторингом ВМ управляет менеджер ресурсов кластера, а параметр onboot фактически игнорируется — решения принимает HA-стек.

⚠️ Внимание: не включайте одновременно Start at boot и HA для одной ВМ, ожидая «двойной надёжности». Управление запуском должно быть либо локальным (onboot), либо кластерным (HA), иначе возможны конфликты при миграции и восстановлении после сбоя узла.

Для ВМ, добавленных в HA, состояние запуска задаётся через раздел Datacenter → HA → Resources, где параметр requested state определяет, должна ли машина быть запущена.

Что делает параметр onboot на уровне системы

При загрузке хоста служба pve-guests.service считывает конфигурации всех ВМ и контейнеров с onboot=1 и запускает их с учётом указанного порядка и задержек. Статус службы можно проверить командой systemctl status pve-guests.

Почему автозапуск не срабатывает

Если после перезагрузки хоста виртуальная машина не стартовала, необходимо последовательно проверить несколько типичных причин. Начните с самого простого — значения onboot в конфигурации ВМ.

  • 🔍 Параметр не сохранён — убедитесь, что после изменения настроек в конфиге появилась строка onboot: 1.
  • 🧩 ВМ находится под управлением HA — локальный автозапуск не работает, проверьте requested state в HA.
  • 💾 Хранилище недоступно — если диск ВМ лежит на сетевом storage, который монтируется позже, запуск завершится ошибкой.
  • 📄 Ошибки в конфигурации — ручная правка файла с синтаксической ошибкой может помешать запуску.
⚠️ Внимание: редактируйте файлы /etc/pve/qemu-server/<VMID>.conf только при выключенной ВМ и предварительно сделайте копию. Файловая система pmxcfs реплицирует конфигурацию между узлами кластера, и ошибка распространится на весь кластер.

Диагностику запуска удобно вести через журнал: команда journalctl -u pve-guests покажет, какие гостевые машины служба пыталась запустить и с каким результатом. Отсутствие записей о вашей ВМ в этом журнале почти всегда означает, что onboot для неё не установлен.

Проверка результата

После настройки стоит убедиться, что автозапуск действительно работает. Самый надёжный способ — контролируемая перезагрузка хоста вне рабочего времени с последующей проверкой состояния ВМ командой qm list или в веб-интерфейсе.

Если перезагружать продакшн-хост нельзя, ограничьтесь проверкой конфигурации: убедитесь, что в файле ВМ присутствует onboot: 1, а при необходимости — корректная строка startup. Этого достаточно, чтобы быть уверенным в срабатывании автозапуска при следующей загрузке узла.

Часто задаваемые вопросы

Работает ли автозапуск для LXC-контейнеров?

Да, параметр Start at boot доступен и для контейнеров LXC. Настройка выполняется аналогично — через вкладку Options контейнера или командой pct set <CTID> --onboot 1.

Нужно ли перезагружать хост после включения Start at boot?

Нет, параметр сохраняется в конфигурации сразу и будет учтён при следующей загрузке узла. Сама ВМ также продолжает работать без прерываний.

Что произойдёт, если две ВМ имеют одинаковый Start order?

Машины с одинаковым приоритетом будут запускаться без строгой очерёдности между собой. Если порядок критичен, задайте разные значения и при необходимости добавьте задержку запуска.

Почему ВМ выключается дольше заданного Shutdown timeout?

Гостевая система может игнорировать сигнал ACPI-завершения, если в ней не установлены гостевые агенты или служба зависла. Установка QEMU Guest Agent внутри ВМ и включение соответствующей опции в настройках машины делает завершение работы более предсказуемым.

Можно ли включить автозапуск сразу для всех ВМ?

Через веб-интерфейс массовой настройки нет, но в консоли это решается коротким циклом по списку идентификаторов с командой qm set. Перед массовым изменением убедитесь, что хост выдержит одновременный старт всех машин по ресурсам.