Зменшення розміру віртуального диска vhd (x)

Утиліта VHD Resizer

Дана утиліта дозволяє як збільшити, так і зменшити розмір жорсткого диска, як статичного, так і динамічного. На жаль, офіційний сайт програми припинив своє існування. Однак, завантажити утиліту Ви можете в інтернеті або у нас.

Як приклад візьмемо віртуальну машину SRV01 з віртуальним диском 40Гб і зменшимо її до 30Гб. Для цього спочатку помістимо ВМ в змінну і виведемо властивості її віртуального диска:

$ Vm = Get-VM -Name SRV01
Get-VHD -VMId $ vm.VMId

У властивостях VHD нас цікавлять такі параметри, як:

  1. FileSize - поточний розмір файлу VHD. Показує реальний обсяг дискового простору, який займає віртуальний диск.
  2. Size - поточний розмір віртуального диска. У випадку з динамічним VHD показує максимальний розмір, до якого він може вирости.
  3. MinimumSize - мінімальний розмір віртуального диска, або мінімально можливий розмір, до якого можна урізати VHD.

Як видно з прикладу, ми маємо динамічно розширюваний VHD розміром 40Гб, з яких на даний момент зайнято трохи більше 20Гб. Вільне місце є, однак поточний і мінімальний розміри практично однакові, тому урізати диск не вийде.

Для подальших маніпуляцій ВМ повинна бути виключена, тому перевіряємо її стан і, якщо треба, вимикаємо:

$ Vm.State $ vm | Stop-VM -Force

Потім подмонтіруем VHD до батьківської системі і виведемо властивості отриманого диска:

Mount-VHD -Path $ vm.HardDrives.Path -Passthru | Get-Disk

Беремо отриманий номер диска і виводимо всі наявні на ньому розділи:

Get-Partition -DiskNumber 3

Якщо на диску раптом виявилося кілька дрібних незрозумілих розділів, не варто їх чіпати. Вони містять важливу інформацію, необхідну системі для завантаження і відновлення. Нам потрібен розділ, що має букву диска. Зменшимо його до 30Гб і перевіримо, що вийшло:

Resize-Partition -DriveLetter E -Size 30GB
Get-Partition -DriveLetter E

Отмонтіруем VHD від батьківської системи:

Dismount-VHD -Path $ vm.HardDrives.Path

І урізуємо його до мінімально-можливого значення:

Resize-VHD -Path $ vm.HardDrives.Path -ToMinimumSize

Як бачите, все вийшло, віртуальний диск урізаний до 30Гб. Залишається тільки запустити ВМ.

Джерелами даної статті послужили наступні матеріали:

Схожі статті