Как уменьшить размер виртуального диска в Hyper V?

Автор Itworkroom

Как уменьшить размер виртуального диска в Hyper V?

Часто возникает необходимость изменить размер виртуального жесткого диска. Если мы хотим увеличить — не вопрос, конечно при условии наличия свободного места, другое дело уменьшение размера виртуального диска в Hyper V. В ранних версиях функционал для таких операций отсутствовал, приходилось прибегать к сторонним утилитам, но в новых версиях начиная с MS Windows Server 2012 появились штатные средства. Но, учтите перед урезанием VHD образа, необходимо предварительно уменьшить логические разделы внутри виртуальной машины. Это и представляет основную трудоемкость. Все операции производим в PowerShell.

Помещаем виртуальную машину DC1 в переменную с выводом свойств её виртуального диска:

$vm = Get-VM -Name DC1
Get-VHD -VMId $vm.VMId

В свойствах виртуального диска нас интересуют такие параметры:
• File Size — текущий размер файла VHD. Показывает реальный объем дискового пространства, который занимает виртуальный диск.
• Size — текущий размер виртуального диска. Если VHD динамический, то показывает максимальный размер, до которого он может вырасти;
• Minimum Size — размер до которого можно урезать VHD.
Имеем динамически расширяемый VHD — размером 40Gb, из которых занято > 20Gb. Свободное место есть, но текущий и минимальный размеры практически одинаковы, поэтому уменьшить диск не получится.

Уменьшение vhd диска

Уменьшение vhd диска

Далее виртуальная машина должна быть выключена!
$vm.State
$vm | Stop-VM -Force
Затем подмонтируем VHD к родительской системе и выведем свойства получившегося диска:
Mount-VHD -Path $vm.HardDrives.Path -Passthru | Get-Disk
Берем полученный номер диска и выводим все имеющиеся на нем разделы:
Get-Partition -DiskNumber 3
Если на диске имеются другие разделы, не надо их трогать! Они могут содержат важную информацию необходимую системе для загрузки и восстановления. Нас интересует раздел, имеющий букву диска. Уменьшим его до 30Gb и проверим:
Resize-Partition -DriveLetter E -Size 30GB
Get-Partition -DriveLetter E

Уменьшение vhd диска

Уменьшение vhd диска

Отмонтируем VHD:
Dismount-VHD -Path $vm.HardDrives.Path
И уменьшим его до минимально значения:
Resize-VHD -VMId $vm.HardDrives.Path -ToMinimumSize
Всё на данном этапе: виртуальный диск урезан до 30Gb. Запускаемся.

Уменьшение vhd диска

Уменьшение vhd диска

Перед всеми работами рекомендуется на всякий пожарный случай делать резервные копии всего! Подходить только для Windows Server 2012!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *