Изменить размер виртуального диска windows

Динамическое изменение размеров дисков виртуальных машин доступно, начиная с версии Hyper-V в Windows Server 2012 R2. Функция Online VHDX Resize позволяет вам увеличить или уменьшить размер vhdx диска виртуальной машины онлайн (без остановки ВМ). В этой статье мы рассмотрим, как увеличить или уменьшить (сжать) размер диска виртуальной машины в Hyper-V, запущенном в Windows 10 или Windows Server 2016 (инструкции применима для всех поддерживаемых версий Hyper-V, в том числе бесплатного Hyper-V Server).

Содержание:

  • Увеличиваем размер виртуальный VHDX диска в Hyper-V
  • Как сжать виртуальный VHDX диск в Hyper-V?
  • Изменить размер виртуального диска Hyper-V с помощью PowerShell

Основные возможности и ограничений Online VHDX Resize в Hyper-V:

  • Вы можете изменить размер виртуального диска Hyper-V любого типа: фиксированного, динамического, и дифференциального.
  • Вы можете изменить размер VHDX диска (в том числе системного диска гостевой ОС) на-лету. Останавливать виртуальную машину не нужно;
  • VHDX диск должен быть подключен к ВМ через виртуальный SCSI контролер (не поддерживается онлайн расширение дисков на IDE контроллере, такую ВМ придется выключить для изменения размера диска);
  • Online VHDX Resize работает как на первом, так и втором поколении виртуальных машин Hyper-V;
  • В качестве гостевой ОС может выступать, как Windows, так и Linux;
  • Поддерживается как расширение виртуальных дисков (extend), так и их сжатие (shrink);
  • Вы можете изменить размер vhdx диска из графической консоли Hyper-V, PowerShell или Windows Admin Center;
  • Не поддерживается изменение размера общих VHDX файлов или VHD Set (VHDS/AVHDX) дисков, используемых в гостевых кластерах;
  • Нельзя изменить размер виртуального диска, для которого создан снапшот (например при резервном копировании).

Увеличиваем размер виртуальный VHDX диска в Hyper-V

Рассмотрим, как увеличить размер виртуального VHDX диска с помощью консоли Hyper-V Manager.

  1. В менеджере виртуальных машин Hyper-V выберите виртуальную машину, перейдите в ее настройки (Settings) -> SCSI Controller;
  2. Выберите нужный виртуальный диск и нажмите кнопку Edit;
    изменить размер файла виртуальной машины vhdx в hyper-v

    Если кнопка Edit неактивна, и внизу указано Edit is not available because checkpoint exist for this virtual machine, нужно удалить снапшоты. Возможно необходимо отключить Production Checkpoint в свойствах ВМ.

    Edit is not available because checkpoint exist for this virtual machine

  3. В запустившемся мастере выберите пункт Expand;
    expand vhdx файл в hyper-v manager

  4. Укажите новый размер виртуального жесткого диска (в нашем примере мы расширим диск до 170 Гб);
    увеличить размер виртуального диска hyperv без выключения ВМ

  5. Теперь нужно подключится к гостевой ОС, диск которой был расширен. Рассмотрим, как увеличить диск в гостевой ОС Windows. Откройте консоль диспетчера управления дисками Disk Manager. На диске должна появиться дополнительная неразмеченная область 43 Гб (Unallocated);
    Неразмеченная область в гостевой ОС

  6. Щелкните по разделу, который нужно растянуть и выберите Extend Volume (можно расширить только раздел, находящийся слева от неразмеченной области). Укажите на сколько нужно расширить этот раздел за счет неразмеченного места (подробнее процедура расширения описана здесь);
    Расширить раздел в гостевой ОС Windows

  7. После выполнения процедуры Extend, размер диска будет увеличен.

    В гостевой Linux можно расширить диск с помощью утилиты Parted.

Как сжать виртуальный VHDX диск в Hyper-V?

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

  1. Перед тем как сжать виртуального диска из консоли Hyper-V, необходимо внутри гостевой ОС уменьшить размер логического раздела на диске, освободить часть места, преобразовав его в неразмеченную область. Для этого внутри гостевой ОС откройте диспетчер управления дисков, выберите нужный раздел и выберите пункт Shrink Volume (Сжать том);
    Сжимаем том в гостевой ОС Windows

    Примечание. Пункт Shrink Volume будет доступен только в том случае, если на диске есть свободное место.

  2. Укажите на сколько нужно уменьшить размер раздела (в нашем примере, мы указали 50 Гб);
    Уменьшить размер диска

  3. После уменьшения размера раздела в гостевой ОС, нужно открыть консоль Hyper-V и перейти в настройки виртуального диска. Нажмите кнопку Edit;
  4. В мастере Edit Virtual Hard Disk выберите пункт Shrink, затем укажите новый размер vhdx файла. Обратите внимание, что вы не можете сделать размер диска меньше, чем размер данных на нем. В нашем случае можно уменьшить диск с 40 до 31 Гб.
    уменьшить размер виртуального диска hyper-v

    Прежде чем уменьшать размер VHDX файла, попробуйте дефрагментировать его с помощью оптимизации Hyper-V. Выберите пункт Compact в предыдущей форме. Либо для оптимизации и дефрагментации динамического диска Hyper-V можно использовать команду PowerShell:
    Optimize-VHD -Path 'D:\Hyper-V\fs01.vhdx'

    compact сжать файл в hyper-v с помощью дефрагментации

  5. Готово

Изменить размер виртуального диска Hyper-V с помощью PowerShell

Можно изменить размер VHDX диска с помощью PowerShell. Для этого используется командлет Resize-VHD (не путать с
Resize-VirtualDisk
, который относится к командлетам модуля управления дисками Storage).

Примечание. В современных версиях Hyper-V для изменения размера виртуального диска с помощью командлета Resize-VHD не обязательно выключать виртуальную машину.

Сначала нужно получить полный путь к VHDX диску виртуальной машины:

Get-VM -VMName fs01 | Select-Object VMId | Get-VHD

Здесь же можно увидеть реальный размер VHDX файла на диске (FileSize) и максимальный размер, который он может занять (Size).

MinimumSize – это минимальный размер VHDX диска, до которого можно уменьшить файл виртуального диска.

powershell получить текущий, минимальный и максимальный размер vhdx диска в hyper-v

Чтобы увеличить размер VHDX диска нужно указать его новый размер:

Resize-VHD -Path 'C:\VM\fs01\Virtual Hard Disks\fs01.vhdx' -SizeBytes 50Gb

Если вы указали размер виртуального диска меньше, чем он занимает на диске, появится ошибка:
Resize-VHD : Failed to resize the virtual disk
.

Вам осталось расширить диск в гостевой ОС.

Можно сделать это удаленно через PowerShell Remoting. Подключитесь к виртуальной машины с помощью Invoke-Command или Enter-PSSession (по сети или через PowerShell Direct)
Enter-PSSession -ComputerName fs01

Получим информацию о том, на сколько можно расширить раздел и расширим его до максимального размера:
$MaxSize = (Get-PartitionSupportedSize -DriveLetter C).SizeMax
Resize-Partition -DriveLetter L -Size $MaxSize

Если нужно уменьшить размер виртуального диска до минимально-возможного, выполните:

Resize-VHD -Path 'C:\VM\fs01\Virtual Hard Disks\fs01.vhdx' -ToMinimumSize

уменьшить размер виртуального диска hyperv командлет powershell resize-vhd tominimumsize

Данная команда уменьшила максимальный размер VHDX файла на 6 Гб.

Инструкции по изменению размера виртуальных дисков в других гипервизорах доступны по ссылкам: KVM, VMWare.

автор: Джон, Обновлено: 13 ноября 2024 г.

То же самое с физическим жестким диском, вы можете изменить размер виртуальных разделов для Hyper-V виртуальная машина без потери данных. Изменить размер раздела очень просто, установив NIUBI Partition Editor в Hyper-V vm, но возможно ли изменить размер раздела vhd/vhdx без Hyper-V? Ответ — да, в этой статье подробно описаны шаги по изменению размера виртуального раздела VHD/VHDX и диска без Hyper-V.

Содержание:

  • Подготовка перед изменением размера виртуального раздела VHD / VHDX
  • Как изменить размер виртуального диска vhd/vhdx без Hyper-V Менеджер
  • Как изменить размер жесткого диска vhd/vhdx без Hyper-V

Подготовка перед изменением размера виртуального раздела VHD / VHDX

Перед началом изменения размера виртуальных разделов необходимо сделать две вещи:

1. Удалите все контрольные точки, связанные с VHD или VHDX, размер которых вы хотите изменить. В противном случае вы получите следующую ошибку и не сможете загрузиться Hyper-V Менеджер после изменения размера виртуальных разделов.

Hyper-V ошибка

Как показано в сообщении об ошибке «Несоответствие идентифицированного родительского виртуального жесткого диска и разностного диска

Это легко понять, размер разделов после изменения размера отличается от размера в Checkpoint.

2. Выключите гостевую виртуальную машину и закройте Hyper-V Менеджер или другие приложения, которые используют этот VHD или VHDX. В противном случае вы получите ошибку «Процесс не может получить доступ к файлу, так как он используется другим процессом».

Virtual Manager error

Как изменить размер виртуального диска vhd/vhdx без Hyper-V Менеджер

Шаг 1: Откройте «Управление дисками» на физическом компьютере. (Нажмите Windows и R вместе на клавиатуре, введите diskmgmt.msc и нажмите «Enter».)

Шаг 2: Нажмите Экшн меню> Присоединить виртуальный жесткий диск

Attach VHD

Шаг 3: Нажмите Вставить выберите файл VHD / VHDX и затем нажмите OK, чтобы продолжить.

Затем этот виртуальный диск прилагается. Как видно на скриншоте, значок диска 2 отличается от двух других физических жестких дисков.

VHD attached

Шаг 4: Скачать и установить NIUBI Partition Editor на физический сервер или персональный компьютер. То же самое с управлением дисками, вы увидите все разделы физического и виртуального диска в NIUBI Partition Editor, В виртуальном диске 2 диск K является системным разделом в VHD / VHDX.

NIUBI Partition Editor

Шаг 5: Щелкните правой кнопкой мыши диск M: и выберите «Изменить размер/Переместить том», перетащите левую границу вправо во всплывающем окне или введите значение в поле «Нераспределенное пространство до». После этого диск D будет сжат, и с левой стороны от него появится некоторое нераспределенное пространство.

Shrink M

Partition shrunk

Шаг 6: Щелкните правой кнопкой мыши диск K: и снова выберите «Изменить размер/Переместить том», во всплывающем окне перетащите правую границу вправо, чтобы объединить это нераспределенное пространство. Затем диск K будет расширен в виртуальном режиме.

Extend K

Partition extended

Шаг 7: Нажмите «Применить» в левом верхнем углу, чтобы изменения вступили в силу. (Размеры разделов не будут изменены, пока вы не нажмете «Применить» для подтверждения.)

Пока в любом разделе есть свободное неиспользуемое пространство, вы можете сжать его, чтобы расширить другой на том же виртуальном диске. После изменения размера виртуальных разделов не забудьте отсоединить VHD. В противном случае, когда вы включите эту виртуальную машину в Hyper-V, вы получите сообщение об ошибке «Процесс не может получить доступ к файлу, поскольку он используется другим процессом

Detach VHD

Hyper-V error

Как изменить размер виртуального жесткого диска vhd/vhdx без Hyper-V Менеджер

Лучше, чем физический жесткий диск, размер которого фиксирован, виртуальный диск VHD/VHDX может быть изменен быстро и легко. Для выполнения этой задачи вы можете использовать Hyper-V Менеджер или через PowerShell без Hyper-V.

Примечание: перед расширением виртуального диска с помощью PowerShell, вам также следует выключить гостевую виртуальную машину и удалить все связанные с ней контрольные точки.

Как изменить размер/расширить диск VHD/VHDX без Hyper-V:

  1. Откройте PowerShell с правами администратора из панели быстрого запуска, меню «Пуск» или другого места на вашем физическом компьютере.
  2. Тип Resize-VHD -Path ‘E:\hyperv.vhdx’ -SizeBytes 500gb

Объяснение:

  1. ‘E: \ hyperv.vhdx’ означает абсолютный путь и имя файла .vhd / .vhdx с кавычками.
  2. 500 ГБ означает расширение этого виртуального жесткого диска до 500 ГБ, не добавляя 500 ГБ.

После расширения виртуального диска дополнительное пространство в конце будет показано как нераспределенное, затем запустите NIUBI Partition Editor и объединить нераспределенное пространство с другими разделами. Следуйте инструкциям в видео:

Video guide

  • Чтобы расширить любой смежный раздел, просто щелкните его правой кнопкой мыши, чтобы запустить команду «Изменить размер/Переместить том», а затем перетащите границу, чтобы объединить нераспределенное пространство.
  • Чтобы расширить несмежную перегородку в случае нераспределенного пространства вам сначала необходимо переместить нераспределенное пространство так, чтобы оно стало смежным с обеих сторон.

Помимо изменения размера раздела физического и виртуального диска, NIUBI Partition Editor помогает делать много других операций.

Скачать

В данном посте пошагово описывается способ расширения размера локального системного диска гостевой операционной системы Windows за счет увеличения виртуального диска VirtualBox.

Могут возникнуть случаи, когда заранее выделенного места на дисковом пространстве гостевой операционной системы (ОС) Windows в виртуальной машине может быть недостаточно. В такой ситуации, есть возможность расширить дисковое пространство (виртуальный диск) на гостевой операционной системе средствами VirtualBox и системными средствами ОС Windows, не пересоздавая виртуальную машину. Под гостевой ОС подразумевается операционная система, которая устанавливается, настраивается и работает на виртуальной машине (VM). В данном посте описывается ситуация, когда заполняется дисковое пространство на системном диске, то есть на локальном системно диске «С:» ОС Windows 7.

Для расширения дискового пространства системного диска гостевой ОС Windows, надо проделать следующие шаги:

  1. Проверить текущий размер локального системного диска гостевой ОС.
  2. Настроить диск виртуальной машины в VirtualBox.
  3. Расширить системный диск гостевой операционной системы.

1. Проверить текущий размер локального системного диска гостевой ОС.

Проверяется текущей размер локального диска «C:» (Local Disk (C: ) гостевой ОС с помощью проводника Windows.

А также с помощью меню «Свойства» локального системного диска «C:».

В «Управление Дисками» раздела «Управление компьютером» видно, что нет нераспределенного или свободного дискового пространства для расширения локального диска «C:».

После этого можно приступать к расширению дискового пространства.

2. Настроить диск виртуальной машины в VirtualBox.

Необходимо остановить гостевую операционную
систему Windows. Надо убедиться, что виртуальная машина выключена, а не находится в
состоянии сохранения. Также перед продолжением, необходимо удалить снэпшоты (snapshots),
которые ассоциируются с виртуальной машиной, если они используются в VirtualBox.
Это поможет определить, что модифицируется корректный виртуальный диск, и что
все будет правильно работать после модификации.

Для настройки расширения диска виртуальной машины в VirtualBox, надо войти в меню «Файл» и выбрать «Менеджер виртуальных носителей», как показано на скриншоте ниже.

В «Менеджере виртуальных носителей» можно увидеть все виртуальные диски существующих виртуальных машин. В данном примере их три. Изменение размера виртуального диска будет выполняться для Windows7_test.vdi, у которой размер виртуального диска 10 Гб.

Выбирается Windows7_test.vdi и по нажатию на «Свойства», можно получить доступ к дополнительной информации и опциям, среди которых есть и изменение размера диска.

Размер диска увеличивается на 2 Гб в пункте «Размер», то есть был 10 Гб и теперь назначается 12 Гб.

После нажатия на «Применить», размер диска виртуальной машины расширяется до 12 Гб. Новое значение этого диска отображается в разделе «Виртуальный размер».

После этого необходимо запустить утилиту VBoxManage на хостовой операционной системе для расширения размера файла виртуального диска. Хостовая операционная система –  это основная ОС, которая установлена на  компьютере и управляет ее ресурсами. Утилита VBoxManage находится в директории установки программы VirtualBox. В данном примере она располагается в директории C:\Program Files\Oracle\VirtualBox. Для запуска утилиты из данной директории необходимо запустить командную строку от имени Администратора и выполнить переход с помощью команды cd.

Далее надо запустить утилиту VBoxManage со следующим синтаксисом:

VBoxManage ключ путь_к_файлу_виртуального_диска_и_имя resize, где

ключ – выбирается ключ
modifyhd для изменения
виртуального диска,

путь_к_файлу_виртуального_диска_и_имя – необходимо указать абсолютный путь и имя файла виртуального диска. В данном примере файл располагается в подкаталоге локального диске «E:» и название файла Windows7_test.vdi,

resize – указывается размер в мегабайтах. Задан 12288 Мб, что равняется 12 Гб.

В зависимости от производительности компьютера и размера виртуального диска, процесс изменения размера виртуального диска займет некоторое время. Для данного примера операция потребовала около 1 минуты. После успешного выполнения необходимо перейти на 3-ий шаг.

3. Расширить системный диск гостевой операционной системы.

После увеличения размера виртуального диска в VirtualBox, выполняется вход на гостевую операционную систему Windows 7. В «Управление Дисками» раздела «Управление компьютером» появилось 2 Гб нераспределенного (свободного) дискового пространства. Данное нераспределенное пространство будет назначено локальному системному разделу «С:».

Для этого надо нажать на локальный диск «С:» правой кнопкой мыши и в контекстном меню выбрать опцию «Extend Volume».

Откроется мастер, который поможет расширить нужный диск. Для начала процесса надо нажать на «Next».

Выбирается доступное нераспределенное дисковое пространство. На данном шаге можно всё пространство выделить или выбрать меньше чем доступно. В примере выбирается все доступное пространство и нажимается «Next».

На последнем этапе нажимается «Finish».

После этого, в «Управление Дисками» и в проводнике Windows отобразится новый размер локального системного диска «С:» гостевой операционной системы увеличенный на 2 Гб.

Размер системного диска «С:» увеличен и равняется 12 Гб. На этом завершается процесс увеличения размера локального системного диска гостевой операционной системы Windows 7, работающей в VirtualBox.

Уровень сложностиСредний

Время на прочтение2 мин

Количество просмотров3.5K

Часто возникает проблема неограниченного расширения виртуального диска с докером на WIndows. Проблема в том, что после удаления лишних образов, контейнеров из docker объем виртуального диска докера не уменьшается. Одним из решением будет использование инструментов очистки пространства от докера и утилиты Diskpart совместно с compact.

Для начала запустим Windows Powershell и узнаем занимаемое пространства в докере с помощью команды: docker system df

Получим следующий вывод:

Вывод команды docker system df

Вывод команды docker system df

В выводе видим информацию о размерах занимаемого пространства и сколько в % этого пространства не используется. На начальном этапе размер моего виртуального диска докера занимал 90 Гб. После использования дальнейших команд размер снизился на 30 Гб до 60 Гб.

Выполним команду docker system prune

Вывод команды docker system prune

Вывод команды docker system prune

Данная команда позволяет удалить кэш сборок, все не использующиеся в данный момент контейнеры, образы, созданные сети. Чтобы не удалить ничего лишнего я предпочитаю использовать отдельные команды для удаления локальных хранилищ, кэшей сборки, образов и контейнеров. Это можно сделать с помощью команд: docker volume prune, docker builder prune, docker image prune, docker container prune.

Как мы видели на первом изображении, у меня больше всего занимало места volume и build cashe, поэтому последовательно я применил команды docker volume prune, docker builder prune. При запросе системы согласны ли мы на удаление, пишем да (Y).

После произведенных манипуляций картина такая:

Вывод команды docker system df

Вывод команды docker system df

Однако виртуальный диск докера размер не уменьшил. Нам теперь необходимо его принудительно сжать. В этом нам поможет утилита DiskPart. Поскольку у меня докер работает на wsl, то в начале необходимо остановить wsl, введя команду wsl --shutdown. Для проверки, что команда успешно отработало выполните wsl --list --verbose. В выводе будет что-то подобное:

Список установленных дистрибутивов wsl и их рабочий статус

Список установленных дистрибутивов wsl и их рабочий статус

Далее выполним команду diskpart и нам откроется командная строка утилиты. Там нам необходимо ввести путь до нашего виртуального диска докера. Команда имеет такой синтаксис: select vdisk file="<Path to docker vhdx disk>". После выполнения команды утилита сообщит, что соответствующий виртуальный диск выбран.

Работа утилиты diskpart

Работа утилиты diskpart

Дальше остается вызвать команду сжатия диска: compact vdisk . После завершения выполнения команды виртуальный диск станет занимать меньше места. В моем случае мне удалось освободить 30 Гб. Здесь все зависит от того, что конкретно вы почистили с помощью docker system prune. Закрываем diskpart и не забываем в конце запустить вновь wsl просто введя wsl.

В этой небольшой статье я покажу, как можно использовать PowerShell для сжатия и оптимизации VHD и VHDX файлов виртуальных машин. Все примеры будут выполнятся на компьютере с Windows 10 с установленной ролью Hyper-V.

Полный список командлетов PowerShell для работы с VHD файлами можно вывести так:

Get-Command -Noun VHD* -Module Hyper-V

командлеты hyper-v для работы с дисками vhd

Командлет Convert-VHD используется для смены формата виртуального диска (с VHD на VHDX и обратно), типа диска (фиксированный, динамический или разностный) и размера блока файла.

Следующая команда запустит процесс преобразования VHD файла в формат VHDX

Convert-VHD -Path 'D:\Hyper-V\Virtual Hard Disks\nano2.vhd' -DestinationPath 'D:\Hyper-V\Virtual Hard Disks\nano2.vhdx'

Convert-VHD преобразование из формата vhdx в vhd

У командлета Convert-VHD есть несколько полезных ключей. Например, BlockSizeBytes используется для изменения размера блока, DeleteSource для удаления исходного файла после окончания конвертации, и VHDType для указания типа виртуального диска (фиксированный, динамический или разностный).

Следует помнить, что процесс конвертации выполняется в офлайн режиме (виртуальная машина, использующая данный диск должна быть выключена).

Командлет Optimize-VHD используется для оптимизации места на диске, используемого файлом динамического виртуального жесткого диска. При запуске этого командлета выполняется сжатие VHD файла.

Optimize-VHD -Path 'D:\Hyper-V\Virtual Hard Disks\srv1e.vhd'

сжать vhd диск с помощью командлета Optimize-VHD

Согласно справке, командлет не только высвобождает неиспользуемые блоки, но и перестраивает блоки для более эффективного использования дискового пространства, что также уменьшает размер VHD/VHDX файлов. В том случае, если оптимизация не требуется, команда может завершиться без изменения размера файла на диске. Параметр Mode можно использовать для изменения режима сжатия (по умолчанию используется режим Full для VHD файлов и Quick для VHDX дисков).

Командлет Resize-VHD используется для сжатия VHDX файлов или увеличения размеров дисков VHD и VHDX. Операция уменьшения размера не будет выполнена, если указан размер, меньший значения параметра MinimumSize.

Get-VHD -Path 'D:\Hyper-V\Virtual Hard Disks\srv1e.vhd'

Ключ ToMinimumSize можно использовать для автоматического уменьшения размера VHDX диска до минимально допустимого значения.

Resize-VHD -Path 'D:\Hyper-V\Virtual Hard Disks\srv1.vhdx' -ToMinimumSize

уменьшить размер vhd диска - командлет Resize-VHD

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows 10 low end pc
  • Принтеру не удалось напечатать во всю страницу windows 10
  • Как расширить экран на ноутбуке на весь экран с помощью клавиатуры windows 10
  • Как понять где ssd а где hdd при установке windows
  • Hp1005 драйвер windows 7 x64