VHD is a file format which represents a virtual hard disk drive. It may contain what is found
on a physical HDD, such as disk partitions and a file system, which in turn can contain
files and folders. It is typically used as the hard disk of a virtual machine.
The format was created by Connectix for Connectix Virtual PC product, which was later acquired
by Microsoft in 2003, for what is now known as Microsoft Virtual PC.
Since June 2005, Microsoft has made the VHD Image Format Specification available to third
parties under the Microsoft Open Specification Promise.
Features A Virtual Hard Disk allows multiple operating
systems to reside on a single host machine. This method enables developers to test software
on different operating systems without the cost or hassle of installing a second hard
disk or creating a separate partition on a single hard disk. The ability to directly
modify a virtual machine's hard disk from a host server supports many applications,
including: Moving files between a VHD and the host file
system Backup and recovery
Antivirus and security Image management and patching
Disk conversion Life-cycle management and provisioning
Supported formats VHDs are implemented as files that reside
on the native host file system. The following types of VHD formats are supported by Microsoft
Virtual PC and Virtual Server: Fixed hard disk image: a file that is allocated
to the size of the virtual disk. Fixed VHDs consist of a raw disk image followed by a
VHD footer. Dynamic hard disk image: a file that at any
given time is as large as the actual data written to it, plus the size of the header
and footer. Dynamic and differencing VHDs begin with a copy of the VHD footer, and for
dynamic or differencing VHDs created by Microsoft products this results in a VHD-cookie string
conectix at the beginning of the VHD file. Differencing hard disk image: a set of modified
blocks in comparison to a parent image. The Differencing hard disk image format allows
the concept of Undo Changes: when enabled, all changes to a hard drive contained within
a VHD are stored in a separate file. Options are available to undo the changes to the VHD,
or to merge them permanently into the VHD. Different child images based on the same parent
image also allow "cloning" of VHDs; at least the globally unique identifier must be different.
Linked to a hard disk: a file which contains a link to a physical hard drive or partition
of a physical hard drive. Advantages
Significant benefits result from the ability to boot a physical computer from a virtual
hard drive: Ease of deployment: IT organizations can deploy
standardized, 'pre-built' configurations on a single VHD. As an example, software engineering
organizations which need a specific set of tools for a particular project could simply
'pull' the appropriately-configured VHD from a network location.
Backup-and-Restore: Changes to the contents of a VHD are easily undone.
Multi-User Isolation: Many current operating systems support having multiple users, but
offer varying degrees of protection between them. By giving each user their own version
of the operating system—say, by creating for each of them a differencing VHD based
on a base installation of the OS—changes to any particular child image would have no
effect on any of the other child images. Native VHD Boot
Native VHD Boot refers to the ability of a physical computer to mount and boot from an
operating system contained within a VHD. Windows 7 Enterprise and Ultimate editions support
this ability, both with and without a host operating system present. Windows Server 2008
R2 is also compatible with this feature.
Limitations The VHD format has a built-in limitation of
just under 2 TiB for the size of any dynamic or differencing VHDs. This is due to a sector
offset table that only allows for the maximum of a 32-bit quantity. It is calculated by
multiplying 232 by 512 bytes for each sector. The C×H×S formula in the VHD specification
allows a maximum of 65535×16×255 sectors. About 127 GiB is also the limit for VHDs in
Windows Virtual PC. For less than 65535×16×63 sectors the CHS-value in the VHD footer uses
a minimum of H=4 and a maximum of H=16 heads with S=17, 31, or 63 sectors per track. The
CHS algorithm then determines C=(TH. The specification does not discuss cases where the CHS value
in the VHD footer does not match the CHS geometry in the Master Boot Record of the disk image
in the VHD. Microsoft Virtual Server(also Connectix derived) has this limitation using
virtual IDE drivers but 2 TiB if virtual RAID or virtual SCSI drivers are used.
Software support Virtual Hard Disk format was initially used
only by Microsoft Virtual PC. Later however, Microsoft used the VHD format in Hyper-V,
the hypervisor-based virtualization technology of Windows Server 2008. Microsoft also used
the format in Complete PC Backup, a backup software component included with Windows Vista
and Windows 7. In addition, Windows 7 and Windows Server 2008 R2 include support for
creating, mounting, and booting from VHD files. The Vista drive manager GUI supports a subset
of the functions in the diskpart command line tool. VHDs known as vdisk in diskpart can
be created, formatted, attached, detached, merged, and compacted. Compacting is typically
a two step procedure, first unused sectors in the VHD are filled with zeros, and then
diskpart can use the NTFS feature of sparse files to eliminate runs of zeros in the VHD.
The virtual machine additions in older VPC versions and the virtual machine integration
features in Windows Virtual PC contain precompact ISO images for the first step in supported
guest systems. Third-party products also use VHD file format.
Oracle VirtualBox, part of Sun xVM line of Sun Microsystems supports VHD in versions
2 and later. VMware ESX Server and VMware Workstation also support the VHD file format
as an alternative to its proprietary VMDK format. The VHD file format is also adopted
by XenSource for what is now the Citrix XenServer hypervisor.
Offline modification It is sometimes useful to modify a VHD file
without booting an operating system. Hyper-V features offline VHD manipulation, providing
administrators with the ability to securely access files within a VHD without having to
instantiate a virtual machine. This provides administrators with granular access to VHDs
and the ability to perform some management tasks offline. The Windows Disk Management
MMC plugin can directly attach a .vhd as a drive letter in Windows 7, Windows Server
2008 and Windows Server 2008 R2. For situations where mounting a VHD within
the operating system is undesirable, several programs enable software developers to inspect
and modify VHD files, including .NET DiscUtils, WinImage and R1soft Hyper-V VHD Explorer.
7-Zip supports extraction and inspection of VHD files.
Virtual Floppy Disk Virtual Floppy Disk is a related file format
used by Microsoft Virtual PC, Microsoft Automated Deployment Services and Microsoft Virtual
Server 2005. A VFD that contains an image of a 720 KB low-density, 1.44 MB high-density
or 1.68 MB DMF 3.5-inch floppy disk can be mounted by Virtual PC. Other virtual machine
software such as VMWare Workstation and VMware Player can mount raw floppy images in the
same way. Windows Virtual PC for Windows 7 does not
offer a user interface for manipulating virtual floppy disks; however, it still supports physical
and virtual floppy disks via scripting. See also
VMDK qcow
Virtual disk image Apple Disk Image
References