Walkthrough: Create an Optimized Windows PE Image
Applies To: Windows 7, Windows Server 2008 R2
Note
This content applies to Windows 7. For Windows 8 content, see Windows Deployment with the Windows ADK.
This walkthrough describes how to reduce the size of your Windows® Preinstallation Environment (Windows PE) image. An optimized Windows PE image is an image that has been modified to support a scenario by removing any files not needed in that scenario. For example, you might want a smaller Windows PE image to make it easier to deploy from a network. You create an optimized Windows PE image using the Deployment Image Servicing and Management (DISM) /apply-profile option. This feature tracks what files are necessary for the scenario while the scenario is in progress and saves the list to a profile. The process requires you to build a test image, build a profile, and then build the optimized image by applying the profile to the base Windows PE image. This removes any file from the base image that is not in the profile. This walkthrough takes you through the following three steps:
Step 1: Build a test image
Step 2: Build a profile
Step 3: Build an optimized image
Prerequisites
To complete this walkthrough, you need the following:
A technician computer that contains all of the tools and the source files. For more information, see Building a Technician Computer.
Custom applications.
Step 1: Build a test image
In step 1, you create a Windows PE build environment, mount the image, add profiling support, add packages, commit changes, and then burn the image to media.
Step 1.1: Set up a Windows PE Build Environment
In this step, you create a required directory structure that supports building a Windows PE image.
Click Start, point to All Programs, point to Windows OPK or Windows AIK, right-click Windows PE Tools Command Prompt, and then select Run as administrator. By default, all tools are installed at C:\Program Files\Version\Tools, where Version can be Windows OPK or Windows AIK.
At the command prompt, run the Copype.cmd script. This script requires two arguments: hardware architecture and destination location. For example,
copype.cmd <architecture> <destination>
where <architecture> can be x86, AMD64, or IA64 and <destination> is a path to the local directory. For example,
copype.cmd x86 c:\winpe_x86
The script creates the following directory structure and copies all of the necessary files for that architecture. For example,
\winpe_x86 \winpe_x86\ISO \winpe_x86\mount
Copy the base image (winpe.wim) into \Winpe_x86\ISO\sources folder and rename the file to boot.wim.
copy c:\winpe_x86\winpe.wim c:\winpe_x86\ISO\sources\boot.wim
Step 1.2: Mount the Base Windows PE Image
In this step, you mount the base image to a local directory so that you can add or remove packages. At the command prompt, mount the base Windows PE image (Boot.wim) to the \Mount directory by using the DISM tool. For example,
Dism /Mount-Wim /WimFile:c:\winpe_x86\ISO\sources\boot.wim /index:1 /MountDir:c:\winpe_x86\mount
Step 1.3: Enable-Profiling
In this step, you will add Windows Management Instrumentation (WMI) support and enable profiling using the Dism /Enable-profiling command-line option. WMI is the infrastructure for management data and operations on Windows-based operating systems.
Profiling is executed during Windows PE creation, to ensure that memory-mapped DLLs are captured. This feature tracks and traces all of the file calls in the booted image.
Add WMI support using Dism /Add-Packages, For example,
Dism /image:C:\winpe_x86\mount /Add-Package /PackagePath:"C:\Program Files\<version>\Tools\PETools\x86\WinPE_FPs\winpe-wmi.cab" Dism /image:C:\winpe_x86\mount /Add-Package /PackagePath:"C:\Program Files\<version>\Tools\PETools\x86\WinPE_FPs\en-us\winpe-wmi_en-us.cab"
Use the DISM /enable-profiling option to enable profiling. You must specify both the path to the image and a location to save the profile when using the /Enable-profiling option. For example,
Dism /image:C:\winpe_x86\mount /Enable-profiling
Important
You can use the Dism /Get- MountedWimInfo option to review the settings of the image to ensure your image has been updated with your settings.
Step 1.4: Add Customization
In this step, you add your custom applications and scripts to your Windows PE image. For more information see,
Step 1.5: Commit changes
Commit changes to the image. In this step, you commit the changes to the original image file by using the DISM /unmount option with the /commit option. For example:
dism /Unmount-Wim /MountDir:C:\winpe_x86\mount\ /Commit
Step 1.6 Create Windows PE Media
You now have a customized Windows PE RAM disk image that you can place on bootable media, such as a CD-ROM or USB flash drive (UFD).
To create a bootable CD-ROM
To CD-ROM or create a bootable DVD-ROM using custom Windows PE image, follow Step 4 of Walkthrough: Create a Bootable Windows PE RAM Disk on CD-ROM topic.
To create a bootable UFD
To create a bootable UFD using custom Windows PE image, follow Step 4 of Walkthrough: Create a Bootable Windows PE RAM Disk on a USB Flash Disk topic.
Step 2: Build a profile
To build a profile, you boot the image on the test computer, and then test all actions that will be used in the actual environment. For example, if you use Notepad, you must use the Save As function if you want the ability to save a Notepad file. When you boot the image, it begins logging any file reads during the session. It then marks the files that have been used. If a file is not used, it is later removed when the /apply-profiles command-line option is initiated.
Once you complete your testing, run the wpeutil /saveprofile command from the running Windows PE session to save a profile.
Boot a computer with your custom Windows PE image.
From a running Windows PE session, test the scenario on how your custom image will be used. If multiple applications are used, you must run all of the desired commands for each application.
After running all of the desired commands for all applications, run the wpeutil saveprofile <path to profile> command. Save the profile to an external source. For example,
wpeutil saveprofile E:\Optimize_Profile.txt "Image Optimization Profile"
End the Windows PE session.
Note
You can boot from the same Windows PE image again, run different applications, and save new profiles. Later DISM combines the profiles when you use the /apply-profiles option
Step 3: Build an optimized image
In building an optimized image you mount the test image, use the DISM tool to apply your profile, and then commit the changes to the image. On the technician computer, do the following:
Important
If you want to compare images from your original to the image after the Apply-Profile command is run, make a copy of the boot.wim file before starting the following procedure.
Mount the original test image you created in Step 1.
Dism /Mount-Wim /WimFile:C:\winpe_x86\iso\sources\boot.wim /index:1 /MountDir:C:\winpe_x86\mount
Use DISM to apply the profiles to the test image. For example,
Dism /image:C:\winpe_x86\mount /Apply-Profiles:E:\Optimize_Profile.txt
Note
A Windows PE image that has been customized using any profile is not serviceable. The /Apply-Profiles option automatically disables profiling.
Commit the changes using the DISM /unmount-Wim option with the /commit option. For example,
Dism /Unmount-Wim /MountDir:C:\winpe_x86\mount /Commit
Optimize the image by exporting to a new image file. When you modify an image, ImageX and DISM stores additional resource files that increase the overall size of the image. Exporting the image using ImageX will remove unnecessary resource files.
imagex /export C:\winpe_x86\iso\sources\boot.wim 1 C:\winpe_x86\iso\sources\boot2.wim
Delete the original boot.wim and rename boot2.wim to boot.wim.
Next Step
You now have an optimized Windows PE image that you can place on bootable media, such as a CD-ROM, UFD, or network server.
See Also
Concepts
Deployment Image Servicing and Management Command-Line Options
Windows PE Servicing Command-Line Options