Как уменьшить размер виртуального диска в Hyper V?
Как уменьшить размер виртуального диска в 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. Свободное место есть, но текущий и минимальный размеры практически одинаковы, поэтому уменьшить диск не получится.
Далее виртуальная машина должна быть выключена!
$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:
Dismount-VHD -Path $vm.HardDrives.Path
И уменьшим его до минимально значения:
Resize-VHD -VMId $vm.HardDrives.Path -ToMinimumSize
Всё на данном этапе: виртуальный диск урезан до 30Gb. Запускаемся.
Перед всеми работами рекомендуется на всякий пожарный случай делать резервные копии всего! Подходить только для Windows Server 2012!
0