Native VHD Boot: A Walkthrough of Common Scenarios
Applies To: Windows 7, Windows Server 2008 R2
This guide describes the functionality and usability of native VHD boot, one of the many features of Windows® 7 and Windows Server® 2008 R2. Native VHD boot enables IT professionals to use a single disk format to service both virtual machines and physical client computers.
This guide presents three scenarios of varying levels of complexity and each scenario includes a series of step-by-step instructions. Collectively, these scenarios introduce you to the techniques and supporting deployment tools so that you will be able to apply native VHD boot in a useful and productive manner within your organization.
For a downloadable version of this document, see Native VHD Boot: A Walkthrough of Common Scenarios in the Microsoft Download Center (http://go.microsoft.com/fwlink/?LinkId=205148).
Introduction to native VHD boot
What is native VHD boot?
Native VHD boot enables a physical computer to be booted directly from a virtual hard disk (VHD) with no requirement for virtualization software (such as Microsoft® Virtual PC or Hyper-V™). Native VHD boot is made possible with the addition of a mini-port driver that is responsible for all input/output (IO) operations to and from the disk. Earlier versions of Windows (such as Windows Vista®, Windows XP, and Windows 2000) do not support native VHD boot, and therefore, you cannot use them to implement the functionality described in this document.
With the introduction of native VHD boot, it is possible to achieve a single image deployment strategy for both physical and virtual machines. As long as the operating system that resides on the VHD is generalized and hosts Windows 7 Enterprise, Windows 7 Ultimate, or Windows Server 2008 R2 (all editions), the VHD can be used in both environments.
The main goals for introducing native VHD boot are to:
Deploy a single image type in virtual and physical infrastructures.
Manage virtual and physical infrastructures by using a single set of tools.
Deploy operating systems to new computers in a rapid manner.
Enable computers to boot from more than one operating system (multiboot or dual-boot) without requiring separate partitions.
Create a system that has the flexibility of a virtual environment (such as running the Hyper-V role) but uses physical hardware.
Available VHD types
There are three types of VHDs that you can create:
Fixed-size VHD. A fixed-size VHD is configured with a disk size that is allocated in full when the VHD is created. For example, a fixed-size VHD with a configured size of a 100 GB allocates the entire 100 GB at the moment the VHD is created. This configuration is best for performance and guarantees available disk space.
Dynamically expanding VHD. A dynamically expanding VHD is created as a small file with an initial size of around 250 KB. As data is written to the VHD, it expands until it reaches its maximum size (which is configured when the file is created). Note that as a dynamically expanding VHD expands, the host volume could run out of space and cause the write operations to fail. Therefore, you should consider using fixed-size VHDs or configuring the VHD as discussed in Step 12 of Scenario 3: Performing an Advanced Deployment of Native Boot VHDs.
Differencing VHD. A differencing VHD is similar to a dynamically expanding VHD in respect to how it grows as data is written to it. However, differencing VHDs have a parent/child relationship between two disks. The child disk (the differencing VHD) holds the differences and grows when data is written to it. The parent disk remains read-only and it cannot be modified, which prevents data corruption. The parent file can be a fixed-size, dynamically expanding, or another differencing VHD. The latter will create a differencing disk chain.
The maximum size of a VHD is 2040 GB (2 TB).
The following are limitations with native VHD boot in Windows 7 and Windows Server 2008 R2:
BitLocker. Although you can place a VHD on a partition that is enabled with BitLocker™ Drive Encryption, it is not possible to boot from that VHD. Enabling BitLocker on the operating system within the VHD is also not a supported configuration.
Manual image creation. Creating VHD images is still a manual process. However, you can configure VHDs to align with the existing image engineering methods in your organization (creating a standard image, editing its configuration, and so on). For example, you can apply an image to a VHD with the same method as you would apply it to a hard disk drive.
No setup configuration during deployment. There is no setup support while deploying a Windows image to a VHD. That is, you can only apply an image directly to a VHD; you cannot use setup to configure the operating system to be installed on a specific partition.
Location of differencing VHDs. When using differencing VHDs, all VHD files (the parent files and the differencing VHD itself) must be stored on the same partition.
Supported editions. You can only use VHDs that contain Windows 7 Enterprise or Windows 7 Ultimate edition for native VHD boot. However, all editions of Windows Server 2008 R2 are supported.
Hibernation. You cannot hibernate an operating system that runs on a VHD. However, sleep functionality is available.
Windows Experience Index. The Windows Experience Index cannot be calculated for VHDs that are configured for native boot because of the way disk performance is measured. This means some features, such as the Aero® desktop experience, will not be automatically configured based on the index of the VHD’s operating system. However, you can use the Winsat command-line tool to manually configure these indexes, except for the index for the disk data transfer rate.
To help you gain insight into what can be achieved by using native VHD boot, the following sections detail three step-by-step scenarios. The scenarios range from a simple setup to an advanced deployment that utilizes various deployment tools.
Scenario 1: Configuring Native VHD Boot on a Single Computer. In this scenario, you will use the Disk Management MMC snap-in on an existing installation of Windows 7 to create a VHD, apply Windows 7 Enterprise to it, and then configure the boot configuration data (BCD) store so it can boot by using the VHD.
Scenario 2: Deploying Native Boot VHDs Using Windows Deployment Services. In this scenario, you will deploy a custom Windows 7 VHD by using Windows Deployment Services in Windows Server 2008 R2.
Scenario 3: Performing an Advanced Deployment of Native Boot VHDs. In this scenario, a locally installed version of Windows is not used—only VHDs are used. You will configure native VHD boot with two operating systems and have a local copy of the Windows Preinstallation Environment (Windows PE) for recovery purposes.
Scenario 2 is the only scenario that requires you to have a computer running Windows Server 2008 R2. You can perform all of the steps in Scenarios 1 and 3 on a computer running Windows 7 Enterprise or Windows 7 Ultimate.
The following tools are used throughout these scenarios:
BCDBoot: A command-line tool for manually creating the boot configuration data (BCD) store. The BCD store contains the boot configuration parameters, and it is the successor to the Boot.ini.
BCDEdit: A command-line tool for manually editing the BCD store.
Disk Management MMC snap-in: A graphical tool for editing disk configurations.
DiskPart: A command-line tool for editing disk configurations.
Windows AIK: A toolkit for creating and maintaining images. Specifically, you will use the following tools:
ImageX: A command-line tool that is used to capture, create, modify, and apply images.
Deployment Image Servicing and Management (DISM): A command-line tool that is used to apply updates, drivers, and language packs to an image.
Windows Deployment Services: A server role in Windows Server 2008 R2 that deploys images over the network.
Windows PE: A version of Windows with a very small footprint that is designed especially for deployment purposes.