Удалить виртуальную машину Hyper-V, сохранив VHDX и контрольные точки

Содержание статьи
- Сначала запишите, какие диски подключены к виртуальной машине
- Контрольные точки проверяют до Remove-VM
- Remove-VM удаляет конфигурацию, но оставляет VHDX
- Слияние checkpoint нельзя прерывать удалением AVHDX
- Физическое удаление VHDX — самостоятельное решение
- Корректное завершение подтверждается тремя наблюдениями
Если виртуальная машина Hyper-V не удаляется привычным способом, не начинайте с ручного удаления файлов VHDX или AVHDX. Сначала нужно сохранить карту дисков и контрольных точек. Команда Remove-VM удаляет конфигурацию машины, но виртуальные жёсткие диски оставляет.
Контрольные точки требуют особой осторожности: при удалении ВМ Hyper-V удаляет их и объединяет изменения с виртуальным диском. Ручное удаление файлов в этот момент может повредить цепочку данных.
Сначала запишите, какие диски подключены к виртуальной машине
Получите список подключённых виртуальных дисков:
Get-VMHardDiskDrive -VMName "Имя ВМ"
Сохраните значения Path, ControllerType, ControllerNumber и ControllerLocation. Особенно важно записать полный путь VHDX до удаления конфигурации: после Remove-VM запрос по имени машины уже не поможет найти её подключения.
Если данные нужны, сделайте проверенную резервную копию до удаления. Сохранённый путь — это инвентаризация, а не резервная копия.
Контрольные точки проверяют до Remove-VM
Команда:
Get-VMSnapshot -VMName "Имя ВМ"
показывает checkpoints, связанные с виртуальной машиной. В актуальной терминологии Hyper-V snapshots называются контрольными точками. Запишите их количество и имена, чтобы понимать, будет ли после удаления выполняться слияние.
Отдельная команда Remove-VMSnapshot удаляет выбранную контрольную точку. Параметр -IncludeAllChildSnapshots включает дочерние точки, поэтому его нельзя добавлять без просмотра дерева.
Remove-VM удаляет конфигурацию, но оставляет VHDX
Проверьте предполагаемое действие без выполнения:
Remove-VM -Name "Имя ВМ" -WhatIf
Затем, если имя и целевая машина подтверждены, выполните обычный Remove-VM и ответьте на запрос подтверждения. Не используйте -Force как средство исправления: этот параметр лишь убирает диалог подтверждения.
Microsoft прямо указывает: конфигурационный файл ВМ удаляется, а виртуальные жёсткие диски не удаляются. Это позволяет отдельно решить, архивировать VHDX, подключить его к другой машине или удалить позже.
Слияние checkpoint нельзя прерывать удалением AVHDX
Если у машины были checkpoints, Hyper-V удаляет их и объединяет данные с виртуальными дисками после удаления машины. До завершения этого процесса не удаляйте VHDX и AVHDX вручную и не переносите часть цепочки в другую папку.
Смысл ожидания — сохранить согласованность диска. Наличие исчезнувшей записи ВМ в диспетчере ещё не означает, что фоновая работа с её файлами завершена.
Физическое удаление VHDX — самостоятельное решение
Remove-VM не очищает виртуальный диск. Если цель — освободить место, сначала убедитесь, что слияние завершено, резервная копия читается и этот VHDX не подключён к другой машине.
Только после отдельной проверки можно решать судьбу файла. Не включайте удаление VHDX в ту же автоматическую команду, что и удаление конфигурации: у этих операций разные последствия и разные точки возврата.
Корректное завершение подтверждается тремя наблюдениями
- Виртуальная машина больше не присутствует в списке Hyper-V.
- Записанные VHDX остаются на месте, если их удаление не было отдельной задачей.
- Операции с checkpoints и слиянием завершились до перемещения или удаления файлов.
Такой порядок решает именно задачу удаления ВМ. Перезапуск служб, смена владельца папок и ручная очистка AVHDX не должны подменять штатные команды без отдельного подтверждённого диагноза.
Частые вопросы
Remove-VM отработала, машина исчезла, а место на диске не освободилось. Это сбой?
Нет, это штатное поведение: удаляется конфигурационный файл, а VHDX остаётся на месте. Место освободится только после отдельного удаления диска — и лишь тогда, когда слияние контрольных точек уже завершено.
Я не записал Path перед удалением и уже выполнил Remove-VM. Как найти диски машины?
Get-VMHardDiskDrive по имени машины больше ничего не покажет: конфигурации, которая хранила подключения, уже нет. Остаётся искать файлы VHDX и AVHDX по диску вручную — ради этого Path, ControllerType, ControllerNumber и ControllerLocation и записывают заранее.
Как понять, что слияние контрольных точек закончилось и файлы можно трогать?
Пропавшая запись в диспетчере — не показатель: исчезновение ВМ из списка ещё не означает, что фоновая работа с файлами завершена. Ориентируйтесь на сами файлы: пока рядом с VHDX лежат AVHDX из записанной цепочки, ничего не удаляют и не переносят.
Без -Force машина не удаляется. Значит, этот параметр решает проблему?
Нет, -Force только убирает диалог подтверждения и ничего не исправляет. Если удаление не проходит по другой причине, флаг её замаскирует: сначала прогоняют команду с -WhatIf и убеждаются, что указана именно та машина.
Почему нельзя сразу запускать Remove-VMSnapshot с -IncludeAllChildSnapshots?
Параметр удаляет не только выбранную точку, но и все дочерние, а дерево контрольных точек бывает ветвистым. Сначала смотрят вывод Get-VMSnapshot, записывают количество и имена точек и только потом решают, какую ветку убирать.