К основному контенту

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

Изменение размера виртуального жесткого диска — операция не то чтобы очень, но довольно часто встречающаяся. И если увеличить размер виртуального диска в Hyper-V достаточно просто (для этого достаточно лишь иметь необходимое количество свободного места), то уменьшение всегда было связано с некоторыми трудностями.

В ранних версиях Hyper-V подобный функционал вообще отсутствовал и для урезания VHD приходилось использовать всякие левые утилиты типа VHD Resizer. Начиная с Windows Server 2012 появилась штатная возможность урезания виртуальных дисков, однако воспользоваться ей по прежнему не очень просто.

Дело в том, что для уменьшения размера VHD необходимо наличие внутри него свободного неразмеченного пространства. В противном случае опция Урезать (Shrink) недоступна отсутствует в графическом интерфейсе, а PowerShell при попытке урезать диск с помощью Resize-VHD выдаст ошибку.

Таким образом, перед урезанием VHD необходимо предварительно урезать логические разделы внутри виртуальной машины. Сделать это можно несколькими различными способами, я опишу наиболее универсальный. Все издевательства 🙂 над диском будут производиться из родительской системы с помощью PowerShell.

В качестве примера возьмем виртуальную машину SRV01 с виртуальным диском 40Гб и урежем ее до 30Гб. Для этого сначала поместим ВМ в переменную и выведем свойства ее виртуального диска:

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

В свойствах VHD нас интересуют такие параметры, как:

• FileSize — текущий размер файла VHD. Показывает реальный объем дискового пространства, который занимает виртуальный диск.
• Size — текущий размер виртуального диска. В случае с динамическим VHD показывает максимальный размер, до которого он может вырасти;
• 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Гб. Остается только запустить ВМ.


проверка результата

В заключение добавлю, что все описанное актуально только для Windows Server 2012 и выше, и только для ВМ с Windows. И еще, хотя данная процедура довольно безопасна, все же стоит предварительно сделать резервную копию.

Комментарии


Дистанционная компьтерная помощь, удаленная компьютерная помощь онлайн.

Популярные сообщения из этого блога

Лучшие плагины для OBS Studio

Open Broadcast Software или OBS - это свободное программное обеспечение с открытым исходным кодом для стриминга аудио и видео данных в сеть интернет. Программа полностью кроссплатформенная и может работать в Windows, Linux или MacOS. Это отличная альтернатива для таких программ, как Wirecast и XSplit. OBS использует для вещания стандартный протокол обмена сообщениями в реальном времени, а поэтому может транслировать данные в любой сервис, поддерживающий это, например, Yotube. Несмотря на широкие возможности OBS, программа поддерживает еще и множество плагинов. В этой статье мы рассмотрим лучшие плагины для OBS Studio, которые вы можете использовать. Содержание статьи: Лучшие плагины OBS Studio 1. Browser Source Plugin 2. Video Source Plugin 3. Simple Scene Switcher 4. DirectShow Audio Source 5. CLR Browser Source 6. OBS Remote 7. AMD Advanced Media Framework Encoder 8. Text Source Plugin Выводы Лучшие плагины OBS Studio Чтобы найти плагины OBS Studio для Video пользователям пр…

Лучшие аналоги Paint для Linux

Когда я работал в Windows, я часто использовал стандартную программу редактора изображений Windows - Paint. Не всегда нужен очень и многофункциональный инструмент вроде Photoshop или Gimp. Иногда, чтобы подправить ту или иную картинку, дорисовать на ней несколько фигур или вставить текст достаточно простого, легкого в освоении графического редактора вроде Paint. В Linux таких программ довольно много. В этой инструкции мы рассмотрим лучшие аналоги Paint для Linux. В этот список не будут включены такие программы, как Gimp и Krita, ведь это полнофункциональные графические редакторы, векторные редакторы, такие как Inkscape мы тоже рассматривать не будем. А теперь перейдем к списку. Содержание статьи: KolourPaint MyPaint Gnome Paint XPaint Pinta mtPaint GPaint Rassam-paint Выводы KolourPaint На первом месте в списке аналогов Piant для Linux будет KoloutPaint. Это стандартный графический редактор для окружения рабочего стола KDE. Он поддерживает множество форматов изображений PNG, J…

Подключение OneDrive в Linux

OneDrive (Ранее известный как SkyDrive) это популярное облачное хранилище файлов от Майкрософт. Сейчас OneDrive бесплатно предоставляет 7 гигабайт пространства новым пользователям. Как вы знаете OneDrive хорошо интегрирован с другими продуктами компании  Microsoft. В OneDrive Также есть официальный клиент который автоматически загружает ваши видео и фотографии с камеры в облако. Но к сожалению этот клиент недоступен для операционных систем семейства Linux. Но не все так плохо. Сообщество открытого программного обеспечения уже нашло решение. Это opedrive-d от Boilermaker. Запустившись как демон программа автоматически синхронизирует локальную папку с облаком OneDrive. Содержание статьи: Установка Onedrive-d в Linux Настройка Синхронизация локальной папки с OneDrive Установка Onedrive-d в Linux Несмотря на то что onedrive-d разрабатывается для Ubuntu/Debian, CentOs/Fedora/RHEL поддерживается тоже хорошо. Для установки достаточно набрать несколько команд: $ git clone https://gith…