- Уменьшение размера виртуального диска VHD(X)
- Утилита VHD Resizer
- Powershell в Windows 2012
- Как уменьшить диск у виртуальной машины hyper
- Как уменьшить виртуальный диск hyper v
- Как увеличить виртуальный диск hyper v
- Уменьшить с помощью Powershell
- Популярные Похожие записи:
- 4 Responses to Как в Hyper-V уменьшить размер диска
- Как уменьшить размер диска Hyper V в интерфейсе и Powershell
- Уменьшение диска Hyper V в Powershell
- Как уменьшить размер виртуального диска в Hyper V?
Уменьшение размера виртуального диска VHD(X)
В процессе работы с Hyper-v может возникнуть необходимость изменения размеров жестких дисков виртуальных машин. К сожалению, стандартные средства Windows 2008 R2 Вы не позволяют производить уменьшение размера жесткого диска — только увеличение диска или преобразование из динамического в фиксированный (и обратно).
Утилита VHD Resizer
Powershell в Windows 2012
В ранних версиях Hyper-V функционал по уменьшению размена виртуального диска вообще отсутствовал. Начиная с Windows Server 2012 появилась штатная возможность урезания виртуальных дисков, однако воспользоваться ей по прежнему не очень просто. Дело в том, что для уменьшения размера VHD необходимо наличие внутри него свободного неразмеченного пространства. В противном случае опция Урезать (Shrink) недоступна отсутствует в графическом интерфейсе, а PowerShell при попытке урезать диск с помощью Resize-VHD выдаст ошибку.
В качестве примера возьмем виртуальную машину 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Гб. Остается только запустить ВМ.
Источниками данной статьи послужили следующие материалы:
Как уменьшить диск у виртуальной машины hyper
Всем привет сегодня я хочу вам рассказать, о очень полезной функции которой к сожалению нет у VMware ESXI 5.5, а есть у Hyper-V начиная с Windows Server 2012. Это функция уменьшения размера виртуального диска. Сделано очень удобно, так как это может спасти администратора виртуализации он неправильно спланированной инфраструктуры виртуальной машины.
Как уменьшить виртуальный диск hyper v
Напомню, что VMware тоже давал некоторые методы по уменьшению vmdk файлов, но там это делалось не очень удобно через конвертер. В MS как ни странно данный процесс сделали в виде удобного мастера.
Итак как же уменьшить виртуальный диск hyper v, для этого логинимся в свою виртуальную машину, у меня на ней установлен Windows Server 2012 R2, но это не принципиально. Вам нужно зайти в оснастку Управление дисками.
Выбираем диск который следует уменьшить, щелкаем по нему правым кликом и нужна нажать Сжать.
Задаете размер сжимаемого пространства и жмете сжать.
в итоге у вас появится не размеченное пространство на вашем локальном диске, за счет него мы и уменьшим диск hyper-v.
Теперь выключаем виртуальную машину и заходим в ее свойства.
Выбираем нужный виртуальный диск, и запускаем пункт правка.
Откроется мастер изменения виртуального жесткого диска
Как видите, тут тоже есть функция Сжать, она то и позволит в hyper-v уменьшить размер диска, жмем далее.
Мастер вам подскажет до какого минимума можно сжать диск.
Осталось только проверить, запускаем виртуалку и открываем Мой компьютер. И как видите, все успешно сжалось.
Как увеличить виртуальный диск hyper v
Для увеличения виртуального жесткого диска, следует в мастере изменения виртуального жесткого диска, выбрать пункт развернуть, перевод конечно очень корявый. Так, что увеличить диск hyper v, ни чуть не сложнее.
Уменьшить с помощью Powershell
давайте тоже самое проделаем из командной строки сильного языка:) Первым делом у нас есть виртуальная машина dc1, давайте ее закинем в переменную и посмотрим ее свойства.
- File Size > по сути это нынешний размер файла VHD. Отображает, сколько реально используется.
- Size > нынешний размер виртуального диска. Если VHD динамический, то вам отобразят максимальный размер, до которого он может увеличиться
- Minimum Size > отображает до какого размера можно уменьшить VHD.
Имеем динамически расширяемый VHD — размером 40Gb, из которых занято > 20Gb. Как видите свободное пространство имеется, но оно практически одинаково с минимальным, и уменьшить диск, не выйдет.
Как и в графическом варианте, виртуальная машина должна быть потушена.
Берем и монтируем данный виртуальный диск к нашей системе на физическом компьютере, ее еще называют родительской. Посмотрим свойства данного виртуального диска
Запоминаем номер диска и поглядим все разделы на нем с помощью команды
Нас интересует раздел, имеющий букву диска. Уменьшим его до 30Gb и проверим:
Как видите команда прошла успешно, давайте отмантируем данный VHD:
И уменьшим его до минимально значения:
Популярные Похожие записи:
4 Responses to Как в Hyper-V уменьшить размер диска
Добрый день.
Пытаюсь уменьшить диск первым способом, но в мастере изменения виртуального жесткого диска вижу только два варианта «convert» и «expand»
Случайно выделил 96 гигов не на тот виртуальный диск. Присоединить неразмеченное пространство с одного виртуального локального диска на второй вряд ли возможно, а дарить столько памяти не тому диску обидно.
Вторым способом сжимать боюсь, так как в программировании не силен и боюсь потерять важные данные
Может я что-то упустил?
Какая у вас версия Hyper-V?
Если диск не уменьшается необходимо прогнать на нем командлет Optimize-VHD
Спасибо за мануал! C Windows разделом понятно. А как в Hyper-V уменьшить размер диска Linux (ext4)?
Как уменьшить размер диска Hyper V в интерфейсе и Powershell
12 сентября 2019
Уменьшить размер диска Hyper V можно через диспетчер виртуальных машин и с помощью Powershell. Оба варианта мы покажем на примерах.
В Hyper V возможно уменьшить тип диска VHDX, относящийся ко второму поколению виртуальных машин (Generation 2). Тип VHD уменьшить нельзя. Если вы не уверены в типе винчестера его можно проверить в свойстве виртуальной машины — этот способ показан на скриншоте ниже. Если вы используете VHD можно либо конвертировать тип в VHDX либо скопировать содержимое при создании нового диска Hyper V.
Разницы в сжатии динамических и фиксированных устройств нет.
Перед уменьшением диска Hyper V нужно зайти в саму виртуальную машину где этот файл подключен и открыть диспетчер управления дисками:
Аналогично увеличению диска Hyper V нужно выбрать тот, размер которого необходимо уменьшить. Если есть не используемые разделы, то можно их удалить — эффект тот же. Если таких разделов нет, то нужно в выплывающем меню выбрать «Сжать том. » (Shrink). После нажатия кнопки пойдет расчет места, которое возможно освободить:
В новом окне нужно выбрать размер, который будет вычтен из выбранного диска. «Доступное для сжатия пространство» — максимальный размер, на который мы можем уменьшить раздел. Изначально я попробовал уменьшить на 1 Гб, но в дальнейшем Hyper V отказался уменьшать диск на такое пространство. С уменьшением на 10 ГБ проблем с Hyper V не было. Под «отказался» я имею виду, что не появлялась возможность уменьшения в диспетчере Hyper V. Какой минимальный размер для сжатия точно сказать не могу, но как я и написал при 10 Гб работает нормально.
После завершения процесса сжатия у нас появится неразмеченная область, выделяющиеся черным цветом — это та часть, которая будет убрана в дальнейшем через диспетчер Hyper V. Выключать виртуальную машину не обязательно, но я бы рекомендовал это сделать что бы избежать возможных проблем.
Теперь нужно зайти в настройки виртуальной машины гипервизора:
В открытом окне выбрать виртуальный жесткий диск который вы сжимали и нажмите кнопку редактирования. Тут же мы можем увидеть тип диска, который вы используете VHD или VHDX.
В первом окне ничего нельзя изменить, так как мы открывали конкретный VHDX файл, а не из диспетчера управления дисками Hyper V. Открываем следующее окно, где увидим возможность Hyper V уменьшения размера диска (Сжатие/Shrink). Выбираем ее:
Уменьшить виртуальный диск Hyper V можно на тот размер, на который мы освободили внутренний раздел машины:
На последнем окне еще раз убеждаемся, что введенные данные верны и подтверждаем их:
Виртуальный диск Hyper V уменьшен.
Уменьшение диска Hyper V в Powershell
Первое что нужно сделать это узнать имя виртуальной машины Hyper V для сжатия диска:
Моя виртуальная машина называется Win10 и на примерах вам нужно изменить ее имя на свое. Нам нужно проверить, что файл виртуального винчестера имеет тип VHDX, возможности уменьшения VHD нет:
Далее включаем виртуальную машину:
Подключимся к операционной системе виртуальной машины. Если вы подключаетесь с хоста гипервизора проблем быть не должно, но возможно потребуется настроить средства для удаленных команд Powershell.
Либо можно запустить консоль Powershell с самой виртуальной машины.
Сейчас нам нужно уменьшить раздел внутри виртуальной машины что бы в последующем это место убрать через возможности гипервизора. Уменьшить можно и через diskpart, но описывается вариант с Powershell. Нужно выбрать раздел, с которого будет убираться место:
Конечно не стоит уменьшать размер загрузочного раздела или системного до минимального размера.
Далее нам нужно узнать насколько возможно уменьшить раздел. В этой команде я передаю только букву раздела:
Если команда запущена не под администратором, то вы увидите ошибку:
Get-PartitionSupportedSize: клиенту не удалось получить доступ к ресурсу CIM.
Если важно увидеть размер в гигабайтах, то можно сделать так:
Если нужно изменить данные на MB или TB просто замените соответствующие буквы.
В этой команде мы указываем конечный размер раздела, а не сколько хотим от него отнять. В случае работы с интерфейсом возможность уменьшения VHDX в диспетчере гипервизора не была активна при неразмеченном пространстве в 1GB. Эта ситуация исправилась при 10GB.
Можно указывать и другую единицу измерения:
Виртуальную машину можно оставить включенной, но я бы рекомендовал выключить:
Этой командой мы увидим, на сколько мы можем уменьшить диск Hyper V. Я использую конвейер что бы не прописывать путь к файлу VHDX:
Команда ниже в Hyper V уменьшает размер диска. Я вставил изначально значение, но можно использовать и варианты с примеров выше:
Убедимся что диск виртуальной машины 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. Свободное место есть, но текущий и минимальный размеры практически одинаковы, поэтому уменьшить диск не получится.
Уменьшение 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:
Dismount-VHD -Path $vm.HardDrives.Path
И уменьшим его до минимально значения:
Resize-VHD -VMId $vm.HardDrives.Path -ToMinimumSize
Всё на данном этапе: виртуальный диск урезан до 30Gb. Запускаемся.
Уменьшение vhd диска
Перед всеми работами рекомендуется на всякий пожарный случай делать резервные копии всего! Подходить только для Windows Server 2012!