Skip to content

VHD vs VHDX Explained for Hyper-V: Which Format to Use

VHD vs VHDX for Hyper-V: size limits, corruption resistance, performance, and when each format matters. Plus how to convert VHD to VHDX with PowerShell.

SDSysadmin Desk November 8, 2026 7 min read
Photographic illustration for VHD vs VHDX Explained for Hyper-V: Which Format to Use: physical servers with layered virtual machine windows

When you create a virtual disk in Hyper-V, you pick a format: VHD or VHDX. The wizard defaults to VHDX and most people click through without a second thought, which is usually the right call. But the two formats aren’t interchangeable, and knowing where they differ saves you from a 2 TB wall or a needless compatibility headache later.

The short version: VHDX is the newer format, introduced with Windows Server 2012, and it’s better in almost every way that matters — bigger, tougher, and faster on modern storage. VHD is the original format from the early Hyper-V days, capped at 2 TB, still useful in a few specific compatibility cases.

This explains what actually separates them, when the older format still earns its place, and how to convert a VHD to VHDX safely when you decide to move up.

The headline differences

Three things matter most: maximum size, resistance to corruption, and how well the format plays with modern disks. VHDX wins all three.

VHD vs VHDX at a glance

Maximum size VHD: 2 TB — VHDX: 64 TB
Corruption resistance VHD: none — VHDX: internal metadata log protects structure
Block size VHD: small, fixed — VHDX: larger default, better for big files
4K disk alignment VHD: poor on advanced-format drives — VHDX: aligned
Introduced VHD: original Hyper-V — VHDX: Windows Server 2012
TRIM / UNMAP support VHD: no — VHDX: yes (reclaims space on supported storage)
Best for VHD: legacy compatibility — VHDX: everything modern

Size: the 2 TB wall

A VHD cannot exceed 2 TB. That’s a hard limit baked into the format. The moment a workload needs a single virtual disk larger than 2 TB — a file server volume, a big database — VHD is off the table and you need VHDX, which the VHDX specification supports up to 64 TB. This alone settles the question for any storage-heavy VM.

Corruption resistance

VHDX keeps an internal log of its own metadata changes. If the host loses power partway through a write to the disk’s structures, that log lets VHDX recover to a consistent state. VHD has no equivalent — an outage mid-write is more likely to leave the file inconsistent. On real hardware that occasionally loses power despite your best UPS plans, that resilience is worth a lot.

Performance on modern disks

VHDX uses a larger default block size and aligns to 4K physical sectors. Older VHD files were built around 512-byte sectors, so on today’s advanced-format (4K) drives they paid a read-modify-write penalty on every misaligned operation. VHDX avoids that. It also supports TRIM/UNMAP, so deleted space inside the guest can be reclaimed on storage that understands it. On write-heavy VMs the gap is real; on a lightly used utility VM you may never notice.

Provisioning types apply to both

Format is one choice; how the disk allocates space is another. Both VHD and VHDX come in the same three flavors, and people sometimes confuse the two decisions.

  • Dynamically expanding — the file starts small and grows as the guest writes data, up to its maximum. Space-efficient, slight overhead, the common default.
  • Fixed size — the full size is allocated up front. Predictable performance, no growth surprises, uses the space immediately.
  • Differencing — a child disk that records changes against a read-only parent. Useful for layered setups, dangerous when forgotten because the chain grows.
# Dynamic VHDX (grows on demand, up to 100 GB)
New-VHD -Path "D:\VMs\app01.vhdx" -SizeBytes 100GB -Dynamic

# Fixed-size VHDX (allocates all 100 GB now)
New-VHD -Path "D:\VMs\db01.vhdx" -SizeBytes 100GB -Fixed

When VHD still makes sense

VHDX is the right default, but VHD isn’t useless. Reach for it in these cases:

Use VHD when one of these is true

  • You need to run the disk on Windows Server 2008 R2, which predates VHDX
  • You're attaching to an older host or tool that only understands VHD
  • You're uploading to a platform that requires a fixed-size VHD (some Azure import paths)
  • You're working with a legacy appliance distributed as a .vhd file
  • The virtual disk is small and compatibility matters more than features

The Azure case trips people up: certain Azure import workflows require a fixed-size VHD, not a dynamic one and not a VHDX. If you’re preparing an image for that path, you may convert from VHDX to a fixed VHD specifically for the upload, even though VHDX is better locally. Always check the current platform requirement before assuming.

Outside compatibility, there’s no feature reason to choose VHD on a new build. If the host is Windows Server 2012 or later and the disk stays in your environment, VHDX is the answer.

Converting VHD to VHDX

Moving an existing disk up to VHDX is straightforward with Convert-VHD. The cmdlet reads the source and writes a brand-new file in the target format, so your original stays untouched until you choose to delete it.

The one rule: the VM must be shut down and the disk detached or offline. You can’t convert a disk that’s attached to a running VM.

# 1) Stop the VM that owns the disk
Stop-VM -Name "App01"

# 2) Convert VHD to VHDX (source is left intact)
Convert-VHD -Path "D:\VMs\app01.vhd" -DestinationPath "D:\VMs\app01.vhdx"

# 3) Swap the disk on the VM — remove the old VHD, attach the new VHDX
Remove-VMHardDiskDrive -VMName "App01" -ControllerType IDE -ControllerNumber 0 -ControllerLocation 0
Add-VMHardDiskDrive -VMName "App01" -Path "D:\VMs\app01.vhdx"

# 4) Start the VM and confirm it boots before deleting the original .vhd
Start-VM -Name "App01"

A couple of practical notes:

  • The conversion needs free space for the new file while the old one still exists. Make sure the target volume has room for both.
  • After converting a boot disk, double-check the controller. A Generation 1 VM boots from IDE; a Generation 2 VM boots from SCSI. If you’re also moving generations, that’s a separate piece of work — see Generation 1 vs Generation 2 VMs for why the generation is fixed at creation and what changes with it.
  • Keep the original VHD until you’ve confirmed the VM boots and the data’s intact. Then delete it.

A quick decision rule

You can boil the whole choice down to two questions:

  1. Is the host Windows Server 2012 or later, and the disk staying in your environment? Use VHDX. It’s bigger, tougher, and faster, with no real downside.
  2. Do you have a specific compatibility reason — Server 2008 R2, an old tool, or a platform that demands a fixed VHD? Then, and only then, use VHD.

For the overwhelming majority of modern Hyper-V VMs, that means VHDX. The 2 TB ceiling, the lack of a metadata log, and the poor 4K alignment make VHD a format you choose deliberately for compatibility, not by default.

Wrapping up

VHDX is the modern Hyper-V disk format and the right default: up to 64 TB, an internal metadata log that survives power loss better, larger blocks, 4K alignment, and TRIM support. VHD is the original format, capped at 2 TB, that still earns a spot for legacy hosts and a handful of platform-specific upload requirements.

If you’re building anything new on a current Windows Server, pick VHDX and don’t look back. If you’ve got old VHDs lying around, converting them is a quick, low-risk job with Convert-VHD as long as the VM is off and you keep the original until you’ve verified the result. For more on Hyper-V disks, checkpoints, and storage, browse the virtualization guides.

Frequently asked questions

What's the maximum size of a VHD vs a VHDX?

A VHD tops out at 2 TB. A VHDX supports up to 64 TB. If you ever need a virtual disk larger than 2 TB, VHDX is your only option — the VHD format simply can't address that much space.

Can I convert a VHD to VHDX without losing data?

Yes. Convert-VHD copies the data from the source into a new file in the target format, so the original is left intact until you delete it. Shut the VM down first, run the conversion, then attach the new VHDX and confirm the VM boots before removing the old VHD.

Is VHDX faster than VHD?

Generally yes, especially on modern storage. VHDX uses a larger default block size and aligns better with 4K-sector physical disks, which reduces the read-modify-write penalty older VHD files suffered on advanced-format drives. The difference is most noticeable on busy, write-heavy workloads.

Why is VHDX more resistant to corruption?

VHDX keeps an internal metadata log that protects its own structures against corruption from power failures during writes. VHD has no such log, so an unexpected outage mid-write is more likely to leave the file inconsistent. This is one of the main reasons Microsoft recommends VHDX.

When would I still use VHD instead of VHDX?

Mainly for compatibility. Use VHD if you need to attach the disk to a Generation 1 boot scenario on very old hosts, run it on Windows Server 2008 R2 (which predates VHDX), or upload to a platform that only accepts VHD, such as certain Azure import paths that require a fixed-size VHD.

Does Generation 2 VM require VHDX?

In practice, yes — Generation 2 VMs use VHDX. VHDX is the default and recommended format for modern Hyper-V VMs on Windows Server 2012 and later, and Generation 2 was introduced alongside it. Generation 1 VMs can use either VHD or VHDX.

Sources & further reading

Official vendor documentation referenced while writing this guide.

SD

Sysadmin Desk

Infrastructure & Cloud

Hands-on guidance for infrastructure, virtualization, and containers — Hyper-V, VMware, Docker, and the day-to-day operations work that keeps environments running.

MCSA Guru provides independent, educational IT guidance. Microsoft, Windows, Windows Server, Microsoft 365, Exchange, and Microsoft Teams are trademarks of Microsoft Corporation; Docker is a trademark of Docker, Inc. MCSA Guru is not affiliated with or endorsed by Microsoft or Docker. Always test changes in a safe environment before applying them in production.

Related guides

Fixing something right now?

Jump straight into the guide library or search for the exact error or task you are dealing with.