Кнопка Remove в веб-интерфейсе Proxmox VE остаётся серой и неактивной, пока виртуальная машина запущена — это первая причина, из-за которой пользователи не могут удалить VM привычным способом. Гипервизор блокирует удаление работающей машины, чтобы исключить случайную потерю данных, поэтому перед удалением её нужно остановить.
В этой статье разберём все рабочие способы удаления виртуальной машины в Proxmox VE: через веб-интерфейс, через командную строку утилитой qm, а также что делать, если VM не удаляется из-за блокировки или отсутствующего конфигурационного файла. Отдельно покажем, как очистить диски и бэкапы, чтобы на хранилище не остались «осиротевшие» тома, занимающие место.
Подготовка перед удалением VM
Удаление виртуальной машины в Proxmox — операция необратимая: вместе с конфигурацией удаляются и виртуальные диски, если они привязаны к VM. Перед тем как нажать Remove, проверьте несколько вещей.
- 💾 Есть ли на дисках VM данные, которые нужно сохранить — сделайте резервную копию через Backup или скопируйте файлы по сети.
- 🔒 Не защищена ли машина флагом Protection — при включённой защите удаление будет отклонено.
- 📦 Используются ли диски VM другими машинами или снапшотами, от которых зависят клоны.
- 🧾 Записан ли VMID машины — он понадобится для работы в командной строке.
⚠️ Внимание: после подтверждения удаления отменить операцию штатными средствами Proxmox нельзя. Восстановить машину получится только из резервной копии, поэтому при малейшем сомнении сначала создайте бэкап через Datacenter → Backup или кнопку Backup now в свойствах VM.
Удаление VM через веб-интерфейс Proxmox
Это основной и самый безопасный способ, подходящий для большинства ситуаций. Все действия выполняются в браузере, в панели управления кластером.
Сначала остановите виртуальную машину, если она запущена. Выделите VM в дереве слева, перейдите на вкладку Summary и нажмите Shutdown для корректного завершения работы гостевой ОС. Если система не отвечает, используйте Stop — это аналог выключения питания, применяйте его только когда Shutdown не срабатывает.
☑️ Порядок удаления VM через веб-интерфейс
После остановки откройте меню More → Remove. Proxmox покажет диалог подтверждения, где нужно вручную ввести VMID — это защита от случайного удаления не той машины. В этом же окне есть два важных чекбокса:
- 🗑️ Purge — удаляет связанные с VM задания резервного копирования, репликации и записи в HA, если машина входила в кластерные службы.
- 💽 Destroy Unreferenced Disks — удаляет диски, которые были подключены к VM, но не значились в её конфигурации как используемые.
Если планируете создать новую VM с тем же ID, дождитесь полного завершения задачи удаления в журнале задач внизу окна — иначе получите ошибку о занятом VMID.
Удаление виртуальной машины через командную строку
Когда веб-интерфейс недоступен или нужно автоматизировать очистку, используется утилита qm — штатный инструмент управления машинами QEMU/KVM в Proxmox. Команды выполняются по SSH или в консоли узла от пользователя root.
Базовый синтаксис удаления выглядит так:
qm stop 101
qm destroy 101
Здесь 101 — это VMID вашей машины. Команда qm destroy удаляет конфигурацию VM и все диски, привязанные к ней. Если нужно дополнительно вычистить связанные задания бэкапов и непривязанные тома, добавьте флаги:
qm destroy 101 --purge true --destroy-unreferenced-disks true
Посмотреть список всех машин с их идентификаторами и статусами можно командой qm list. Она покажет VMID, имя, состояние и объём выделенной памяти — удобно свериться перед удалением, чтобы не ошибиться с номером.
Что делать, если VM не удаляется
Самая частая проблема — ошибка VM is locked. Блокировка появляется, когда над машиной выполняется (или зависла) длительная операция: создание снапшота, миграция, резервное копирование. Сначала проверьте журнал задач внизу веб-интерфейса — возможно, процесс ещё идёт, и достаточно дождаться его завершения.
Если задача зависла и блокировка держится долго, её можно снять принудительно:
qm unlock 101
⚠️ Внимание: снимайте блокировку командой qm unlock только после того, как убедились, что реальная операция над VM действительно завершилась или зависла. Снятие lock во время активной миграции или бэкапа может повредить диски виртуальной машины.
Вторая типичная ситуация — конфигурация VM повреждена или узел кластера, на котором она зарегистрирована, недоступен. Файлы конфигурации хранятся в кластерной файловой системе по пути /etc/pve/qemu-server/<VMID>.conf. Если узел вышел из строя навсегда, файл можно удалить вручную с любого живого узла кластера, после чего VM исчезнет из интерфейса. Диски при этом на хранилище останутся — их придётся чистить отдельно.
Как найти и удалить «осиротевшие» диски
После ручного удаления конфигурации на хранилище могут остаться тома вида vm-101-disk-0. Найдите их в веб-интерфейсе: выберите хранилище → вкладка Content. Тома, не привязанные ни к одной VM, можно удалить оттуда кнопкой Remove. Для LVM-thin и ZFS список томов также виден командами lvs и zfs list соответственно. Удаляйте только те тома, в чьей ненужности уверены полностью.
Сравнение способов удаления VM
Каждый метод имеет свою область применения. Краткая сводка поможет выбрать подходящий под вашу ситуацию.
| Способ | Когда применять | Плюсы | Ограничения |
|---|---|---|---|
| Веб-интерфейс, More → Remove | Штатное удаление одной или нескольких VM | Наглядно, защита вводом VMID | Требует доступа к панели |
| qm destroy в консоли | Автоматизация, недоступный веб-интерфейс | Быстро, подходит для скриптов | Легко ошибиться в VMID |
| Удаление .conf вручную | Вышел из строя узел кластера | Единственный выход при мёртвом узле | Диски остаются на хранилище |
| Proxmox API | Интеграция с внешними системами | Полный программный контроль | Требует настройки токенов |
Штатный путь удаления VM в Proxmox: остановить машину → снять Protection → More → Remove → ввести VMID → при необходимости отметить Purge. Всё остальное — обходные варианты для нестандартных ситуаций.
Очистка после удаления: бэкапы и остаточные данные
Удаление VM не трогает ранее созданные резервные копии — архивы .vma.zst или .vma.gz остаются на бэкап-хранилище. Это удобно как страховка, но при регулярных бэкапах удалённых машин хранилище постепенно забивается. Проверьте вкладку Content на бэкап-хранилище и удалите архивы, относящиеся к несуществующим VMID.
Также стоит проверить расписания резервного копирования в Datacenter → Backup: если задание было привязано к конкретному VMID без флага Purge при удалении, оно продолжит выполняться и будет завершаться с ошибкой. Удалите или отредактируйте такие задания.
Не забудьте про снапшоты и связанные клоны: linked clone нельзя корректно использовать после удаления исходного шаблона или родительской VM. Если планируете удалять машину, от которой создавались связанные клоны, сначала преобразуйте их в полные клоны (Full Clone) или убедитесь, что они больше не нужны.
Перед удалением важной VM сделайте не только бэкап, но и экспортируйте её конфигурацию: scp /etc/pve/qemu-server/101.conf в надёжное место. Текстовый файл конфигурации занимает считанные килобайты, а восстановить по нему параметры машины — дело минут.
FAQ: частые вопросы об удалении VM в Proxmox
Можно ли восстановить VM после удаления через Remove?
Штатными средствами — нет, операция необратима. Восстановление возможно только из резервной копии через qmrestore или кнопку Restore на бэкап-хранилище. Именно поэтому перед удалением стоит убедиться в наличии свежего бэкапа.
Почему кнопка Remove неактивна (серая)?
Наиболее вероятные причины: виртуальная машина запущена (остановите её через Shutdown или Stop) либо включён флаг Protection в разделе Options. Снимите защиту, остановите VM — и кнопка станет доступной.
Чем отличается qm destroy от qm remove?
В актуальных версиях Proxmox VE используется команда qm destroy; qm remove — устаревший вариант, сохранённый для совместимости. Обе команды удаляют конфигурацию VM и привязанные диски.
Удалятся ли диски VM автоматически?
Диски, числящиеся в конфигурации машины, удаляются вместе с ней. Тома, подключённые, но не прописанные в конфигурации (unreferenced), удаляются только при явной отметке Destroy Unreferenced Disks или соответствующем флаге команды qm destroy.
Как удалить сразу несколько виртуальных машин?
В веб-интерфейсе массового удаления нет — каждую VM придётся удалять отдельно. Для пакетной очистки удобнее консоль: цикл вида for id in 101 102 103; do qm stop $id; qm destroy $id --purge true; done удалит перечисленные машины последовательно. Внимательно проверьте список VMID перед запуском.