Virtual Hard Disk Getting Started Guide
Microsoft Corporation Published: July 2009 Author: Trina Gorman
Abstract
This guide provides an introduction to virtual hard disks (VHDs) in Windows 7 and Windows Server 2008 R2. It includes an overview of technologies that you use to configure VHDs, as well as procedures to help guide you through deploying VHDs.
Copyright information
Information in this document, including URL and other Internet Web site references, is subject to change without notice. Unless otherwise noted, the companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted in examples herein are fictitious. No association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying,
recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property. © 2009 Microsoft Corporation. All rights reserved.
Active Directory, Hyper-V, Microsoft, MS-DOS, Visual Basic, Visual Studio, Windows, Windows NT, Windows Server, and Windows Vista are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
This product contains graphics filter software; this software is based, in part, on the work of the Independent JPEG Group.
All other trademarks are property of their respective owners.
Contents
Virtual Hard Disk Getting Started Guide .......................................................................................... 1 Getting Started with Virtual Hard Disks ........................................................................................... 5 Introduction to Virtual Hard Disks .................................................................................................... 5 In this topic ................................................................................................................................... 6 Introduction ................................................................................................................................... 6 Supported operating systems ...................................................................................................... 6 Overview of tools .......................................................................................................................... 7 Common usage scenarios ........................................................................................................... 8 Scenario one: Image consolidation........................................................................................... 8 Scenario two: Server provisioning ............................................................................................ 9 Scenario three: Server repurposing ........................................................................................ 10 Scenario four: Application development and validation .......................................................... 10 Scenario five: Virtual desktop infrastructure ........................................................................... 11 How to Perform Common Tasks ................................................................................................... 12 In this topic ................................................................................................................................. 12 Creating, attaching, and detaching VHDs by using Disk Management ..................................... 12 Create a VHD .......................................................................................................................... 12 Attach and detach a VHD ....................................................................................................... 16 Creating, attaching, and detaching VHDs by using DiskPart ..................................................... 17 Create a VHD .......................................................................................................................... 18 Create a dynamic disk ......................................................................................................... 18 Create a differencing disk .................................................................................................... 19 Attach and detach a VHD ....................................................................................................... 20 Creating a bootable VHD ........................................................................................................... 21 Before you begin ..................................................................................................................... 22 Step 1: Use DiskPart to create and attach a VHD .................................................................. 22 Step 2: Locate the install.wim image to apply to the VHD ...................................................... 24 Step 3: Apply a .wim image to the VHD ................................................................................. 25 Using the Install-WindowsImage.ps1 Windows PowerShell script ..................................... 25 Apply image by using the ImageX deployment tool ............................................................ 26 Creating VHDs by using Hyper-V ............................................................................................... 28 Preparing a VHD image for boot ................................................................................................ 33 Prepare a VHD image for native boot ..................................................................................... 33 Prepare a VHD image to boot inside a virtual machine .......................................................... 35 Deploying a bootable VHD by using Xcopy ............................................................................... 36 Deploying VHDs by using Windows Deployment Services ....................................................... 38 Migrating VHDs between physical and virtual environments ..................................................... 38
Move from a virtual to a physical environment ....................................................................... 39 Move from a physical to a virtual environment ....................................................................... 39 Servicing images ........................................................................................................................ 42 Add drivers .............................................................................................................................. 42 Add Windows features ............................................................................................................ 43 Backing up images ..................................................................................................................... 43 Performing advanced tasks by using DiskPart .......................................................................... 43 Expand VHD ........................................................................................................................... 44 Extend partition ....................................................................................................................... 45 Compact a VHD ...................................................................................................................... 46 Merge VHD ............................................................................................................................. 47 Display VHD information ......................................................................................................... 48 Appendix: Tools, Scripts, and APIs ............................................................................................... 49 In this topic ................................................................................................................................. 49 Tools used to maintain VHD images .......................................................................................... 50 Diskpart ................................................................................................................................... 50 Disk Management MMC snap-in ............................................................................................ 51 Imagex .................................................................................................................................... 52 Sysprep ................................................................................................................................... 53 BCDEdit .................................................................................................................................. 54 BCDBoot ................................................................................................................................. 55 Deployment Image Servicing and Management Tool (DISM) ................................................ 56 Hyper-V Manager.................................................................................................................... 58 Windows Deployment Services .............................................................................................. 58 Scripts ........................................................................................................................................ 59 Install-WindowsImage ............................................................................................................. 59 APIs ............................................................................................................................................ 61
Getting Started with Virtual Hard Disks
Windows Server® 2008 R2 and Windows® 7 is the first version of Windows to provide native support for virtual hard disks (VHDs). This guide describes the scenarios that guided the
development of this feature, detailed steps about how to employ the functionality (including image creation, deployment, and maintenance), and the associated tools, scripts, and APIs.
Introduction to Virtual Hard Disks
Introduction
Supported operating systems Overview of tools Common usage scenarios
Creating, attaching, and detaching VHDs by using Disk Management Creating, attaching, and detaching VHDs by using DiskPart Creating a bootable VHD Creating VHDs by using Hyper-V Preparing a VHD image for boot
Deploying VHDs by using Windows Deployment Services Deploying a bootable VHD by using Xcopy
Migrating VHDs between physical and virtual environments Servicing images Backing up images
Performing advanced tasks by using DiskPart Tools used to maintain VHD images Scripts APIs
How to Perform Common Tasks
Appendix: Tools, Scripts, and APIs
Introduction to Virtual Hard Disks
5
In this topic
Introduction
Supported operating systems Overview of tools Common usage scenarios
Introduction
The virtual hard disk file format (.vhd) specifies the format of a file that represents a virtual hard disk. To use VHDs on Windows Server 2008 and previous versions of Windows, you must install Hyper-V role, Microsoft Virtual Server, or Windows Virtual PC. However, with Windows 7 and Windows Server 2008 R2, you can create, configure, and boot physical computers from VHDs without a virtual machine or hypervisor. This functionality simplifies image management because it enables you to:
Standardize the image format and toolsets in your organization. Reduce the number of images to catalog and support. Enable increased server utilization to conserve energy.
Supported operating systems
Support for VHDs in Windows 7 and Windows Server 2008 R2 is targeted toward managed
environments. Datacenters and large enterprises that maintain a managed deployment solution, including master images, will derive the greatest benefit from this feature.
All of the operating systems in the following table support VHD operations (such as creating and attaching VHDs). The table shows those that support booting from a VHD.
Windows 7 Editions Boot from a VHD Home Basic Home Premium Professional Enterprise Ultimate Starter
No No No Yes Yes No
6
Windows Server 2008 R2 Editions Boot from a VHD Standard Enterprise Datacenter Web Standard (Core) Enterprise (Core) Datacenter (Core) Web (Core) For Itanium-based systems Foundation Edition
Yes Yes Yes Yes Yes Yes Yes Yes Yes No Overview of tools
This section contains a list of the tools that you use to create and maintain VHDs. For a more detailed overview of these tools, including screenshots, see Appendix: Tools, Scripts, and APIs. The following tools are included in Windows 7 and Windows Server 2008 R2:
DiskPart A command-line tool that you can use to create, attach, and detach VHDs. You can also perform more advanced tasks like compacting, expanding, and merging VHDs. For more information, see DiskPart on Microsoft TechNet (http://go.microsoft.com/fwlink/?LinkId=128458).
Disk Management A Microsoft Management Console (MMC) snap-in that you can use to create, attach, and detach VHDs.
BCDEdit A command-line tool that you use to manage boot configuration data (BCD) stores.
For more information, see BCDEdit on Microsoft TechNet (http://go.microsoft.com/fwlink/?LinkId=128459).
BCDBoot A command-line tool that you can use to manage and create new BCD stores and BCD boot entries. BCDBoot can be used to create a new boot entry when configuring a system to boot from a new VHD. For more information, see BCDBoot Command-Line Options on Microsoft TechNet (http://go.microsoft.com/fwlink/?LinkID=155166).
Deployment Image Servicing and Management (DISM) A command-line tool that you use to apply updates, drivers, and language packs to a Windows image. For more information, see Deployment Image Servicing and Management Technical Reference on Microsoft TechNet (http://go.microsoft.com/fwlink/?LinkId=155029).
Windows Hyper-V Manager An MMC snap-in that supports VHD image creation. You can specify the type and size of VHD and install Windows from a CD or DVD, or from an ISO
7
Image file. The Hyper-V Manager is only available on computers that are running Windows Server 2008 or Windows Server 2008 R2 with the Hyper-V role installed.
Sysprep A tool that enables you to remove user and computer-specific data from the operating system image. This enables you to capture the image and deploy it to other
computers. For more information, see Sysprep Technical Reference on Microsoft TechNet (http://go.microsoft.com/fwlink/?LinkId=155027).
ImageX A command line tool that enables you to capture, create, modify, and apply Windows images. For more information, see ImageX Technical Reference on Microsoft TechNet (http://go.microsoft.com/fwlink/?LinkId=155340).
The following tool are included in the Windows Automated Installation Kit (Windows AIK):
Common usage scenarios
Microsoft used the following scenarios to guide development and support for VHDs in Windows 7 and Windows Server 2008 R2.
Scenario one: Image consolidation
Goal: Enable customers to create, deploy, and maintain a single image format for physical and virtual computers. Background:
Enterprise and datacenter administrators who manage large numbers of servers typically
generate a set of master images to simplify operating system maintenance and deployment. Each master image is for a particular hardware and operating system configuration (for example, it has a specific set of applications, drivers, and so on). These master images comprise an
organization’s image library, which includes a variety of image formats. Administrators must maintain separate processes and toolsets to support each format in the library. Scenario description:
Josh Bailey, the IT administrator of Wide World Importers, maintains an image library that
contains 14 master images to support physical and virtual environments. The images include the following types:
Windows Imaging file format (WIM images) Hyper-V (VHD images) VMware virtual appliances PowerQuest Altiris
Microsoft System Center Configuration Manager for the WIM and VHD HP Systems Insight Manager (SIM) for the VMware images PowerQuest Drive Image for the PowerQuest images
8
Josh is using the following tools to create, maintain, and deploy the images:
HP Insight Rapid Deployment (RDP) for the Altiris images
Josh has decided to standardize all physical and virtual images on the .vhd format and to migrate the Windows 2000 workloads to a virtualized environment. Standardizing has allowed him to reduce the total number of images from 14 to 11 and reduce the number of supported image formats from four to one. Using only the .vhd format allows him to adopt a single application—Configuration Manager—to create, maintain, and deploy the images instead of the four applications he used to use.
With the tools that are provided in Windows Server 2008 R2 and the Windows AIK, Josh creates generalized Windows Server 2008 R2 VHDs that run in physical and virtual environments. Using System Center Virtual Machine Manager, Josh preconfigures VHDs that run in virtual
environments for the Windows Server 2008 R2 operating system. He also uses these tools to create and maintain VHDs that support workloads for the Windows 2000 operating system. Simplifying the toolset saved Josh significant time and expense in tool development, licensing, and maintenance. It also allowed him to merge infrastructure and deployment processes, which significantly reduced operation and capital expenses.
Scenario two: Server provisioning
Goal: Enable customers to provision physical computer resources. Background:
Enterprise and datacenter administrators who want to operate a flexible and dynamic
environment frequently need to quickly provision computer resources. To achieve this goal, they deploy images from an image library that contains master images as part of a managed deployment solution. Scenario description:
Phil Spencer is an administrator for Woodgrove Bank who used the VHD format to standardize all images. After he completed the standardization, his boss told him that the company needs additional capacity for the servers that currently run their Web site. Phil determines that three physical servers are required to satisfy this request.
The deployment and provisioning service in his organization executes scripts to do the following: 1. Create a new allocation record in the configuration management database. 2. Capture the required configuration parameters. 3. Store the parameters in the new allocation record.
4. Turn on three reserve servers that are configured to network boot, copy, and launch a
Windows Deployment Services client. The Windows Deployment Services client is provided an Unattend.xml file that describes the storage and operating system configuration of the server and identifies the correct image to
deploy. The image is contained on a VHD, which includes Windows Server 2008 R2 with Internet Information Services (IIS) installed and configured. The deployment process also configures the local boot environment for each server. After the VHD is copied to the destination server, the
9
server restarts and Setup continues. The server restarts again and another script is run to finalize the server configuration.
Standardizing the physical images on the VHD format enables Phil to perform a simple and rapid deployment of Windows images without requiring him to set up the operating system or apply the image. Image deployment is reduced to copying a file and configuring the boot environment, which minimizes the deployment time.
Scenario three: Server repurposing
Goal: Enable customers to repurpose hardware without increasing the complexity of deployment or servicing. Background:
Enterprise and data center administrators who want to operate a flexible and dynamic
environment frequently need to quickly repurpose computer resources. To achieve this goal, they deploy images from an image library that contains master images as part of a managed deployment solution. Scenario description:
A. Datum Corporation offers services for hosting web, mail and application server workloads for customers. Customers can lease physical computers from A. Datum in increments of as little as 12 hours or more for each of the three workloads.
By using VHDs, A. Datum can configure each physical computer with the ability to run any of the three workloads. The administrator can transition between the workloads by updating the boot environment and rebooting the computer. After the computers are configured, customers are allocated a VHD instead of an entire physical computer that contains an operating system image and the specific workload. All changes that are made by the customer to the image are captured to a differencing disk. When the customer’s lease ends, the differencing disk is archived and the boot environment can be reconfigured to boot a workload as required by the next customer.
Scenario four: Application development and validation
Goal: Enable ISVs to develop a common, reusable image that can be quickly deployed for validation. Background:
Many ISVs who develop software and drivers to support hardware devices often need to perform tests (for performance, reliability, and so on) on real hardware. Traditionally this required ISVs to install Windows on a destination computer, run specific tests, and then debug in that environment. Products like Virtual PC allow ISVs to virtualize test resources for development purposes.
However, virtualization solutions in general do not support virtualization of specialized hardware, which may be a key part of testing scenarios. As a result, this testing must occur on physical computers.
10
Scenario description:
Contoso, Ltd. develops the software and hardware for a graphics card. They test continually to validate that the hardware and software work correctly. In addition, Contoso performs monthly validation passes across a broad range of hardware configurations. To manage these processes, Contoso has created a set of generalized operating system VHDs that contain various user applications.
At the beginning of the week, Contoso deploys each image to a set of hardware configurations. After the image is deployed and specialized, Contoso deploys a differencing disk to which all additional data is written, including all test data. At the end of a test run, the differencing disk is analyzed for test failures and a new one is created for the next test run. If failures occurred during a run, the differencing disk is archived for future use.
Using differencing disks in this way allows Contoso to run each test from a clean installation. The administrators do not have to worry about discrepancies in the environment from a previously failed test run. In addition, by archiving the differencing disks from the failed runs, developers can debug these failures on their schedule without worrying about stalling other runs. They can re-create an approximation of the test failure by using the archived differencing disk.
Scenario five: Virtual desktop infrastructure
Goal: Enable customers to deploy one image type to both physical and virtual client computers. Background:
Many enterprises are moving to a virtual desktop infrastructure (VDI) to host client computers. VDIs typically use Terminal Services or virtual machines. In both cases, there is a host server that provides a server image. With a virtual machine-based VDI solution, there are client images on a VHD. When administrators run all the virtual machines, there is no problem with using VHDs; however, when the administrator wants to migrate a user from a VDI to a physical computer, he needs to deploy the operating system image to a physical computer. This requires the administrator to have two images: one for the physical computers and one for the VDI. Scenario description:
Contoso,Ltd. has a call center with hundreds of employees. One-hundred of the employees work remotely through VDI, but need the same desktop images as the employees who work onsite using physical computers.
As part of its highly managed environment, Contoso uses Folder Redirection and roaming user profiles so that the user state of remote employees is not stored in the image. Contoso also uses Windows Deployment Services and multicasting to deploy the VHD images to multiple computers at one time. By using native support for VHD boot in Windows 7, Contoso is able to create and deploy VDI images to all 100 remote employees. When an employee requires a transition to a physical computer, their VDI image is prepared with Sysprep and configured to boot to a physical computer boot. After the image is deployed to a physical computer and joined to a domain, the user profile data and redirected folders are available to the user. If employees are migrated back to VDI, the process can be reversed. That is, the images are prepared with Sysprep and
11
configured for the virtual memory boot. After they are joined to a domain, the redirected folders and profile data are available.
How to Perform Common Tasks
This section contains step-by-step instructions for completing various common tasks. Note that these tasks require administrative credentials. Therefore, you should:
Run all commands at an elevated command prompt (click Start, right-click Command Prompt, and then click Run as Administrator).
Accept any confirmation dialog boxes that you receive from User Account Control (UAC).
In this topic
Creating, attaching, and detaching VHDs using Disk Management Creating, attaching, and detaching VHDs using DiskPart Creating a bootable VHD Creating VHDs by using Hyper-V Preparing a VHD image for boot
Deploying a bootable VHD by using Xcopy
Deploying VHDs by using Windows Deployment Services Migrating VHDs between physical and virtual environments Servicing images Backing up images
Performing advanced tasks by using DiskPart
Creating, attaching, and detaching VHDs by using Disk Management
Disk Management is an MMC snap-in that you can use to perform the following operations:
Create a VHD. This task creates a new VHD by using the available disk space on the computer, and then saves it to the location that you specify.
Attach a VHD. This task attaches (sometimes referred to as “mounts” or “surfaces”) the VHD so that it shows up as a disk and assigns it a drive letter.
Detach a VHD. This task detaches (sometimes referred to as “unmounts” or “unsurfaces”) the VHD and unassigns a drive letter.
Create a VHD
Use the available disk space on the computer to create a VHD, and then save it.
12
To create a VHD by using Disk Management
1. Open Disk Management (click Start, type Disk Management in the Search box, and
then press ENTER). 2. Select Create from the Action menu. This launches a dialog box that you can use to
specify the parameters for a new VHD.
3. Specify the following:
Location: This is the location and file name where the new VHD will be saved when it is created. For example: E:\est.vhd.
Virtual hard disk size: This is the size of the VHD. Note that if you select
Dynamically expanding, the virtual hard disk size is the maximum size the VHD will expand to.
Virtual hard disk format: This is the format of the VHD. You can select either of the following:
Fixed size: The size of a fixed VHD is allocated based on the maximum size and it does not change. Fixed size VHDs are recommended for production environments.
13
Dynamically expanding: A dynamic VHD is as large as the data that is written to it at any given time.
noteDXDOC112778PADS Note
When you create a dynamic VHD, Windows does not test for free space on the physical
computer based on the maximum size requested. Therefore it is possible to create a dynamic VHD with a maximum size that is larger than the available free space on the hard disk drive on the physical computer. The maximum size of a dynamic VHD is 2,040 GB.
For example, the following screenshot will create a 1 GB, dynamically expanding VHD, and save it to the drive E.
4. Click OK to create the VHD. After it is created, the VHD is attached and it appears as an
uninitialized disk. 5. To initialize the disk, right-click it in the Disk Management pane (in the example below,
right-click the area that says Disk 3), and then click Initialize Disk.
14
After the VHD is initialized, you can treat the VHD as any other disk. For example, you can create new volumes, format volumes, and assign drive letters to volumes within the VHD. The following screenshot shows the user interface when you format a VHD.
15
Attach and detach a VHD
If you have an existing VHD, you can attach it and the VHD shows up as a disk. To attach an existing VHD
1. Select Attach VHD from the Action menu.
2. Enter the path to the VHD and specify whether it should be attached as a read-only disk.
16
3. Click OK. After the VHD is attached, you can treat it as any other disk. For example, you
can create new volumes, format volumes, and assign drive letters to volumes within the VHD. Additionally you can browse existing volumes within the VHD. 4. Optionally, you can detach the VHD so that it no longer shows up as a disk. To do this,
right-click the disk, and then click Detach VHD.
Creating, attaching, and detaching VHDs by using DiskPart
You can use the DiskPart command-line tool to perform the following VHD operations:
Create a VHD. This task creates a new VHD by using the available disk space on the computer, and then saves it to the location that you specify.
Attach a VHD. This task attaches (sometimes referred to as “mounts” or “surfaces”) the VHD so that it shows up as a disk, and then assigns it a drive letter.
Detach a VHD. This task detaches (sometimes referred to as “unmounts” or “unsurfaces”) the VHD, and then unassigns a drive.
17
Note
All of VHD operations in this section are scriptable. For more information about scripting DiskPart commands, see DiskPart on Microsoft TechNet (http://go.microsoft.com/fwlink/?LinkId=128458).
Create a VHD
You can use the DiskPart command-line tool to create a new VHD. You must specify the maximum size of the VHD. Optionally, you can specify the following:
To create a dynamically expanding VHD (the default is fixed).
A source VHD. When you specify a source VHD, Windows populates the new VHD with the contents of the source VHD.
A parent VHD. When you specify a parent VHD, Windows creates a new differencing VHD that is a child of the parent.
Create a dynamic disk
The following screenshot shows a series of commands that perform the following tasks:
Create a new 2 GB dynamically expanding VHD (called test.vhd) Create a 1 GB primary partition inside the new VHD Format the new 1 GB partition
Assign a drive letter (M:) to the new partition
18
Create a differencing disk
A differencing disk is similar to a dynamic VHD, but it contains only the modified disk blocks of the associated parent VHD. The parent VHD is read-only, so you must modify the differencing disk. A differencing disk is sometimes referred to as a “child” VHD. To create a differencing disk, you must have a parent VHD.
The following screenshot shows a command that creates a new, dynamically expanding differencing VHD (called child.vhd), which is the child of another VHD called 7105.serverenterprise.vhd.
19
Attach and detach a VHD
The following screenshot shows a series of commands that perform the following tasks: Attach the VHD. This task mounts the VHD so that it shows up as a disk and assigns it a drive letter.
Detach the VHD. This task unmounts the VHD and unassigns a drive letter.
20
Creating a bootable VHD
This section describes how to create a VHD and apply a Windows image from a .wim file to a partition in the VHD. You apply the Windows image by using a Windows PowerShell script, Install-WindowsImage, or ImageX (which is included in the Windows AIK). You can configure a VHD that contains a Windows 7 Ultimate or Windows Server 2008 R2 image for native VHD boot or for booting in a Hyper-V virtual machine. The steps that are covered in this section are:
Create and attach a VHD file by using DiskPart. Locate the install.wim image to apply to the VHD. Apply a .wim image to a partition in the VHD.
21
After you create a .vhd file by using the steps in this section, you can configure it for native boot or to boot in a virtual machine by following the instructions in the Preparing a VHD image for boot section later in this document.
Before you begin
Before you continue, do the following:
Ensure that you have the following prerequisites:
A computer with Windows 7 or Windows Server 2008 R2 installed and running. Access to media that contains Windows 7 or Windows Server 2008 R2.
Download and install the Windows AIK or Windows PowerShell. You can create and attach a VHD file and configure it for native boot by using features in Windows 7 (Steps 1 and 2 below). However, to create a bootable Windows 7 VHD (Step 3), you need to use the Windows AIK or Windows PowerShell to apply a .wim to the VHD. Specifically, you can use the Windows PowerShell script, Install-WindowsImage.ps1, or the Imagex.exe deployment tools.
Consider using WIM2VHD. You can use the Windows Image to Virtual Hard Disk
(WIM2VHD) command-line tool to automate many of the steps in this section. To download WIM2VHD, see the MSDN Code Gallery (http://go.microsoft.com/fwlink/?LinkId=155155). Documentation for WIM2VHD is available on the MSDN site. WIM2VHD must be run from a system running Windows 7, Windows Server 2008 R2, or Windows Server 2008 with Hyper-V enabled. WIM2VHD also requires that the Windows AIK for Windows 7 be installed to use ImageX.
Specifically, WIM2VHD automates the following tasks:
Creates a new VHD of a specified type and size Applies a WIM to a VHD
Uses an Unattend file to automate the OOBE portion of Windows setup the first time a generalized VHD is booted (optional) Applies updates to VHDs (optional) Enables a kernel debugger (optional)
Step 1: Use DiskPart to create and attach a VHD
Before you begin, note the following:
The default VHD type created when you use DiskPart is a fixed VHD. Therefore, to create another type of file, you must specify TYPE=EXPANDABLE as shown below. Note that creating a fixed VHD takes quite a bit longer because the entire file is allocated at the time it is created.
You can also use the Disk Management console to perform the above steps if you prefer. For instructions, see the Creating, attaching, and detaching VHDs by using Disk Management section earlier in this document.
22
To create and attach a VHD
1. Open an elevated Command Prompt window (click Start, right-click Command Prompt,
and click Run as administrator). 2. Run the following commands to create and attach the VHD. This example creates a
dynamic VHD that has 25 GB maximum size and saves the VHD file in a folder, c:\\vhd.
diskpart
create vdisk file=C:\\VHD\\ create partition primary assign letter=v format quick FS=NTFS label=VHD exit For more information about these commands, run diskpart help create vdisk in the command line. The complete output for this example is shown in the following screenshot. 23 Step 2: Locate the install.wim image to apply to the VHD The next step is to locate a Windows 7 installation image (.wim) to apply to the volume in the VHD. Before you begin, ensure that you have a .wim image from one of the following locations: The product DVD. The installation image is located at \\sources\\install.wim. Note that the DVD also contains a Boot.wim file, which is the Windows PE image that you can use to network boot to run Windows Setup. A Windows installation that you have captured to a .wim by using Imagex.exe or the Image Capture Wizard for Windows Deployment Services. 24 A product DVD .iso image. These images are available to MSDN and TechNet subscribers, and they are also available from the Windows Products Home page (http://go.microsoft.com/fwlink/?LinkId=155370). You must mount .iso images or burn them to physical media to access the .wim files within the .iso file. Note The Windows PE image in Boot.wim does not support native VHD boot Step 3: Apply a .wim image to the VHD There are two ways that you can apply a .wim image to a VHD. Use the Install-WindowsImage.ps1 Windows PowerShell script. The Windows PowerShell script has fewer options than Imagex.exe and does not require you to download the Windows AIK. The script can perform two tasks: display a list of images in a .wim and apply a .wim to a partition in a VHD. You should use the script if you are not familiar with the Windows AIK and Imagex.exe, or if the Windows AIK is unavailable. Use the Imagex.exe command-line tool. Using the Install-WindowsImage.ps1 Windows PowerShell script Before you begin, note that the first time you run Windows PowerShell, you may get an error that unsigned scripts cannot be executed. If you receive this error, you need to set the Windows PowerShell execution policy to allow unsigned local scripts, but still require signed scripts from remote locations. To configure this, run set-ExecutionPolicy RemoteSigned at the Windows PowerShell command prompt. To use the Install-WindowsImage.ps1 script 1. Click Start, and type PowerShell in the Start text box. 2. In the results, right-click Windows PowerShell, and click Run as Administrator. To list the images and index numbers in a .wim, use the following syntax: C:\\Vhd\\Install-WindowsImage.ps1 -WIM To view the help for this script, run help .\\Install-WindowsImage.ps1 –detailed or see the Appendix in this guide. 25 3. To apply an image from a .wim to a VHD, use the following syntax: C:\\Vhd\\Install-WindowsImage.ps1 –WIM In the following example, volume D: is the DVD drive with Windows product DVD, and volume V: is the VHD created in Step 1: C:\\vhd> PowerShell PS C:\\vhd> .\\Install-WindowsImage.ps1 -WIM D:\\sources\\install.wim Index Image Name [1] Windows Server 2008 R2 Standard (Full Installation) [2] Windows Server 2008 R2 Standard (Server Core Installation) [3] Windows Server 2008 R2 Enterprise (Full Installation) [4] Windows Server 2008 R2 Enterprise (Server Core Installation) [5] Windows Server 2008 R2 Datacenter (Full Installation) [6] Windows Server 2008 R2 Datacenter (Server Core Installation) [7] Windows Web Server 2008 R2 (Full Installation) [8] Windows Web Server 2008 R2 (Server Core Installation) Done. PS C:\\vhd> .\\Install-WindowsImage.ps1 -WIM D:\\sources\\install.wim -Apply -Index 5 -Destination V: Applying \"Windows Server 2008 R2 Datacenter\" to V:... WARNING: This may take up to 15 minutes... Elapsed Time: 00:10:57.6302827 Done. Apply image by using the ImageX deployment tool If you have the Windows AIK installed on your computer, you can use Imagex.exe to apply a .wim to a VHD. If you do not have the Windows AIK, you can download and install it on the computer 26 where you will create a VHD. You can also use ImageX to capture a customized Windows image into a .wim file before you apply the .wim to a VHD. To apply a .wim image to a VHD 1. The Install.wim (on the Windows product DVD) contains multiple images for different versions of the operating system. To apply the proper image, locate the index for the version of the image that you need. The following table contains the index for the operating systems that support native VHD boot. Note that all Windows Server 2008 R2 versions support native VHD boot. Note You can view the index of an image by running imagex /info Index Operating System Version 4 1 1 2 3 4 5 6 7 8 Windows 7 Ultimate Windows 7 Enterprise Windows Server 2008 R2 Standard (Full Installation) Windows Server 2008 R2 Standard (Server Core Installation) Windows Server 2008 R2 Enterprise (Full Installation) Windows Server 2008 R2 Enterprise (Server Core Installation) Windows Server 2008 R2 Datacenter (Full Installation) Windows Server 2008 R2 Datacenter (Server Core Installation) Windows Web Server 2008 R2 (Full Installation) Windows Web Server 2008 R2 (Server Core Installation) 2. Use the following syntax to apply the Windows image from the install.wim to the VHD volume, using the applicable index. If you are applying a .wim from a network share instead of local media, use a wired network connection for a faster network connection speed to transfer the image file. Imagex /apply For example, to apply the Datacenter version of the image from the install.wim to the VHD partition, use the image index 5. Using the DVD media in the DVD drive with volume letter F:, and the VHD partition volume V:, the command would be the following: D:\\>imagex /apply F:\\sources\\install.wim 5 V:\\ 27 Note It takes approximately 10-15 minutes to apply the image. Now that you have created a VHD file, you can configure it for native boot or to boot in a virtual machine by following the instructions in the Preparing a VHD image for boot section later in this document. Creating VHDs by using Hyper-V You can use the Hyper-V Manager to create VHDs. Some customers prefer this method because there is a user interface that leads users through the process. Note VHDs that you create by using Hyper-V Manager will be configured for virtual machine boot by default. To configure the VHD for native boot, follow the instructions for Prepare a VHD image for native boot in the Preparing a VHD image for boot section. To create a bootable VHD by using the Hyper-V Manager 1. Start Hyper-V Manager (click Start, click Administrator Tools, and click Hyper-V Manager). 2. Click Action, click New, and then click Virtual Machine. 3. Specify a Name and Location for the new virtual machine, and then click Next. 28 29 4. Click Next on the Configure Networking screen. 5. Click Create a virtual hard disk, specify the storage location and maximum size for the VHD, and then click Next. 30 6. Click Install an operating system from a boot CD/DVD-ROM, and then select the drive or the .iso file. 31 7. Click Next, and then click Finish. When the wizard completes, Windows will create a new virtual machine in the Off state. Use the following procedure to start the new virtual machine to begin installing Windows: To start the new virtual machine 1. Right-click the new virtual machine. 2. To add a DVD or a virtual DVD to a virtual machine, click Settings. 3. Under IDE Controller, select DVD Drive. 4. Specify one of the following, and then click Apply: a. If installing from a physical DVD, select Physical CD\\DVD drive, and then specify the drive letter. b. If installing from a bootable .iso file, browse to the path under Specify the media to use with your virtual CD\\DVD drive, click Image file. 5. Select the virtual machine from the Virtual Machines pane, and then in the Actions pane, click Connect. 6. Click Actions, and then click Start. 7. When you are prompted to Press any key to boot from CD\\DVD, press a key and proceed with the installation. 32 Now that you have created a VHD, you can configure it for native boot or to boot in a virtual machine by following the instructions in the following section: Preparing a VHD image for boot. Preparing a VHD image for boot After you have a VHD, you can configure it for native VHD boot or for booting in a virtual machine. The locations of the boot configuration data (BCD) store and the other boot files that are required to boot the system are different for native boot and virtual machine boot. For native VHD boot, you configure the boot entry in the BCD store to be on the physical system partition outside the VHD. The system partition can be the same or different than the volume that hosts the VHD file. For instance, by default Windows 7 Setup will create a separate 100MB partition to host the BCD store. For a virtual machine boot, you configure the boot entry in the BCD store to be on the volume inside the VHD. Note You must use an elevated Command Prompt window (right-click Command Prompt, and then click Run as Administrator) to run the commands that update the boot configuration data. Prepare a VHD image for native boot Use the procedure in this section to prepare a VHD for native boot. For more information about BCDBoot parameters, see BCDBoot Command-Line Options (http://go.microsoft.com/fwlink/?LinkId=155166). Note If you are an advanced user and familiar with BCDEdit, you can update the BCD manually instead of using the following procedure (using BCDBoot). To do this, run the following syntax at an elevated command prompt and note the GUID in the output: bcdedit /copy {default} /d “ To update the BCD for native VHD boot 1. This procedure assumes you have Windows 7 installed and you want to add a second boot option to boot from the VHD. For this example, the VHD file is located in C:\\VHD\\ V:\\Windows\\System32\\bcdboot V:\\Windows BCDBoot creates the boot configuration entry so that Windows Boot Loader can boot 33 from the VHD image. It also sets the default boot option for the computer to boot Windows from the VHD, which is currently assigned volume letter V. Optionally, you can use steps 2-4 if you want to modify the default boot entry. 2. Run bcdedit (with no parameters) to display the system boot configuration entries. The following screenshot shows an example of the BCDEdit output with two Windows Boot Loader entries. The default boot option, {default}, is for the VHD boot from volume V, the other boot option is for the Windows 7 image that is installed on volume C. 34 3. If you have Windows 7 installed on the hard disk drive, and you configure native VHD boot of Windows 7, there will be two entries in the list with the description text string Windows 7. To change the text in the boot menu (from Windows 7), use the following syntax where the GUID is the identifier of the VHD boot entry: bcdedit /set {GUID} description=”Windows 7 RC VHD” Note Some boot entries have aliases instead of GUIDs (such as {default} for the default boot entry or {current} for the boot entry of the current system). To find the associated GUID, view the verbose output for all the boot entries by running bcdedit -v. 4. To change the default system boot option to be the installed Windows 7 image, instead of the native VHD boot image (or an additional VHD image on the same system), run the following syntax where the GUID is the Windows Boot Loader entry that you want to be the default: bcdedit /default {GUID} When the system restarts, the Windows Boot Manager displays a menu with a list of available images to boot. Prepare a VHD image to boot inside a virtual machine If you still have the VHD attached after running the Install-WindowsImage.ps1 script or the Imagex/apply command, you can use BCDBoot to prepare the VHD image to boot inside a virtual machine. To prepare an attached VHD image to boot inside a virtual machine 1. Open an elevated Command Prompt window. 2. Use the BCDBoot /s System volume for the Windows Boot Manager and boot configuration data. For example, if the VHD is attached and assigned volume V:, run the following command: V:\\windows\\system32\\bcdboot V:\\windows /s V: This command creates the boot configuration data on the partition inside the VHD that is used to boot Windows 7 in a virtual machine. You do not need to perform any other steps to prepare the image to boot in a virtual machine. Optionally, you can prepare the same VHD file to boot inside a virtual machine or for native VHD boot. 3. To view the BCD entry that was created by BCDBoot inside the VHD, run the bcdedit /store bcdedit /store v:\\boot\\BCD 35 Note You can specify the /store Deploying a bootable VHD by using Xcopy The following section provides step-by-step instructions for deploying a bootable VHD without using a managed deployment solution. This is useful for customers who want to develop a custom deployment solution. 36 To deploy a bootable VHD 1. Save a bootable VHD on a computer or network share. 2. Insert a Windows 7 or Windows Server 2008 R2 product DVD into the target computer and boot to the DVD. 3. Configure the disk and select where to install Windows by using the disk configuration screen. 4. Press Shift+F10 to launch a Command Prompt window. 5. In the Command Prompt window, run Startnet.cmd to start networking. 37 6. To copy the VHD from the file share to a destination on the local computer prepared in step 3, run xcopy