How to Resize, Shrink, or Expand VHDX in Hyper-V

Shrinking and expanding VHDX files is a common requirement, especially for data centers.

We discuss here how it’s done.

A lot of times IT admins use dynamically expanding disks to avoid having to grow and shrink VHD / VHDX files. In addition, prior to Windows Server 2012 R2, live expansion and resize of VHDX wasn’t possible; hence, virtual machines had to be shut down for maintenance. But doing all that is / was also a lot work, too.

 

Limitations

Windows Server 2012 R2 comes partially to the rescue and permits live resizing of VHDX files without interruptions in service while the VMs are running, but there are limitations:

Only VHDX files can be shrunk and extended

The VHDX file has to be mounted to a virtual SCSI adapter. Since Hyper-V can’t boot from vSCSI it follows you can’t resize a VM’s system disk.

Shared VHDX size cannot be changed, only stand-alone VHDX is supported.

 

Another thing to consider if you plan to shrink a VM disk is that there has to be free space at the end of the disk in terms of free partition space (unallocated disk space, not currently used by a partition). You can use Windows Disk Management to shrink a partition first if need be.

For Powershell fans out there, the command is resize-vhd and can be used to do the operation via a Powershell script.
By the way, do you have a solid plan for your Hyper-V backups yet? You may want to check out our all-in-one backup software for Windows Server and its feature set; BackupChain offers the best overall value in the market!