Using the Hyper-V Integration Components in WinPE


The new architecture of synthetic devices with Hyper-V poses some unique challenges for system administrators. Specifically, how can a system administrator perform maintenance on a Hyper-V host from WinPE? Without the integration components, users are required to move their VHD’s around to the IDE controller, which limits the amount of VHD’s that can be used at any given point in time. Additionally, legacy network adapters might need to be added to the VM to provide network access.


However, by adding the integration components to a WinPE image, those are no longer concerns.


For those of you not familiar with WinPE, here’s a brief overview:



Windows Preinstallation Environment (Windows PE) is a minimal operating system designed to prepare a computer for Windows installation. It can be used to start a computer with no operating system (a bare-metal system), to partition and to format hard drives, and to copy disk images or to initiate Windows Setup from a network share. Windows PE is available as a stand-alone product to customers with the proper licensing agreement. It is an integrated component of many Windows Setup and recovery technologies, including Setup for Windows Vista and Windows Deployment Services (WDS).


Windows PE 2.1 is the latest release based on the Microsoft® Windows Vista® operating system.



Before we start – what I’m about to detail is not supported by Microsoft.
These directions are being provided on an AS-IS basis.


Now, on to the steps:


1.     Download and install the Windows Automated Installation Kit (AIK). This allows you to create a custom WinPE image. The AIK can be downloaded here: http://www.microsoft.com/downloads/details.aspx?FamilyID=94bb6e34-d890-4932-81a5-5b50c657de08&DisplayLang=en


2.     We need to extract two files from the c:\windows\system32\vmguest.iso file, which is part of Hyper-V RC1 (available at http://www.microsoft.com/downloads/details.aspx?FamilyId=7EDAA89F-9F64-488D-93C0-858D2D8799DF). There are a couple of tools that allow the mounting of an ISO image:


a. WinImage (http://www.winimage.com/)


b. WinISO (http://www.winiso.com/)


c. UltraISO (http://www.ezbsystems.com/ultraiso/)


You can also mount the ISO image in a VM and extract the files as well.


We’re looking for two files. Copy the file that is appropriate for your architecture:


·         32 Bit: \support\x86\Windows6.0-KB951633-x86.msu


·         64 Bit: \support\amd64\Windows6.0-KB951633-x64.msu


3.     Create a directory on the same system you installed the AIK, and store the file(s) above there.


4.     Open up the Windows PE User’s Guide. This was installed as part of the Windows AIK, and can be found (by default) by browsing to Start -> All Programs -> Windows OPK -> Documentation -> Windows PE User’s Guide.


5.     Follow steps 1-4 under Customizing WinPE -> Windows PE Walkthroughs -> Walkthrough: Create a Custom WinPE Image.


6.     After step 4 (Optional: Add Additional Customizations), run the following script from your Windows PE Tools Command Prompt. Create a new batch file with the script below. Make sure that the MSUSOURCE is set to the directory where the files you copied in step 2 and 3 are, and that PESOURCE is set to the directory you created in Step 5.


%echo off


set MSUSOURCE=D:\synth\rc1\amd64


set PESOURCE=D:\winpe_x64_synthetic


mkdir %temp%\IC


c:\windows\system32\expand.exe -F:* %MSUSOURCE%\Windows6.0-KB951633-x64.msu %temp%\ic


mkdir %temp%\IC\binaries


c:\windows\system32\expand.exe -F:* %temp%\ic\Windows6.0-KB951633-x64.CAB %temp%\ic\binaries


“C:\Program Files\Windows OPK\Tools\PETools\peimg.exe” /inf=%temp%\IC\binaries\amd64_wnetvsc.inf_31bf3856ad364e35_6.0.6001.18010_none_b331f76187e159c6\wnetvsc.inf %PESOURCE%\mount\Windows


“C:\Program Files\Windows OPK\Tools\PETools\peimg.exe” /inf=%temp%\IC\binaries\amd64_ws3cap.inf_31bf3856ad364e35_6.0.6001.18010_none_f2dbb8abfcb9f757\ws3cap.inf %PESOURCE%\mount\Windows


“C:\Program Files\Windows OPK\Tools\PETools\peimg.exe” /inf=%temp%\IC\binaries\amd64_wstorflt.inf_31bf3856ad364e35_6.0.6001.18010_none_1ca7ba32d0b2bd99\wstorflt.inf %PESOURCE%\mount\Windows


“C:\Program Files\Windows OPK\Tools\PETools\peimg.exe” /inf=%temp%\IC\binaries\amd64_wstorvsc.inf_31bf3856ad364e35_6.0.6001.18010_none_835d97e82051b059\wstorvsc.inf %PESOURCE%\mount\Windows


“C:\Program Files\Windows OPK\Tools\PETools\peimg.exe” /inf=%temp%\IC\binaries\amd64_wvmbus.inf_31bf3856ad364e35_6.0.6001.18010_none_95947137626ceb80\wvmbus.inf %PESOURCE%\mount\Windows


“C:\Program Files\Windows OPK\Tools\PETools\peimg.exe” /inf=%temp%\IC\binaries\amd64_wvmbushid.inf_31bf3856ad364e35_6.0.6001.18010_none_4cc9f65464cd2f85\wvmbushid.inf %PESOURCE%\mount\Windows


“C:\Program Files\Windows OPK\Tools\PETools\peimg.exe” /inf=%temp%\IC\binaries\amd64_wvmbusvideo.inf_31bf3856ad364e35_6.0.6001.18010_none_af4c3664979a87cd\wvmbusvideo.inf %PESOURCE%\mount\Windows


“C:\Program Files\Windows OPK\Tools\PETools\peimg.exe” /inf=%temp%\IC\binaries\amd64_wvmic.inf_31bf3856ad364e35_6.0.6001.18010_none_5df58a6c04d20690\wvmic.inf %PESOURCE%\mount\Windows


Once the batch file completes, refer back to the Windows PE Users Guide, and finish following the steps from Step 5 onward.


After you create the ISO, attach it to a VM and power it on. You should have full access to all synthetic devices.



-Mike


 

Comments (18)

  1. Mike Sterling just made a triumphant return to blogging by posting an article on how to add the RC1 ICs

  2. Mike Sterling has just done a great post on how to integrate the Hyper-V Integration Services into a

  3. Joseph Worrall says:

    Great explanation thanks! Now, how about explaining how to add the integration components to BARTPE under Windows XP SP2 or SP3? Thanks for your help!!!

  4. Firdous Gangat says:

    This is great stuff. I’m trying to workout if this can be automated into the MDT2008 WinPE ISO and WIM process creation process for lab testing

    FG

  5. mikester says:

    @Joseph –

    I haven’t had a chance to look at BartPE – now that WinPE is available to everyone, it’s a much better solution (at least in my opinion). What does BartPE provide that WinPE doesn’t have?

  6. mikester says:

    @Firdous –

    I’m not familliar with the MDT WinPE ISO automated build process – but it might work.

  7. Mark Emery says:

    Doesn’t work for me. The PEIMG command always fails with status code 0x80070003.

    I’m using PEIMG from AIK not OPK if that matters. I don’t get the prompt ‘Installing INF package’ before the error message.

    Other documentation regarding driver injection always refers to image 2 in BOOT.WIM as the proper target.

    Any Clues anyone?

  8. Mark Emery says:

    Found status 0x80070003 means INF file wasn’t found, path slightly different in x86 kits

  9. mikester says:

    @Mark:

    All the modifications are being made to boot.wim, which gets mounted as part of steps 1-4 in the WinPE users guide (Step 5 in my instructions).

    Can you confirm that the WIM gets mounted, and you can browse the contents?

  10. The new architecture of synthetic devices with Hyper-V poses some unique challenges for system administrators. Specifically, how can a system administrator perform maintenance on a Hyper-V host from WinPE? Without the integration components, users ar

  11. Mike Sterling talks about how to inject Hyper-V into WinPE.  Pretty cool. http://blogs.msdn.com

  12. Delfim says:

    Great information. Just a comment, we have to launch the expand command on a Windwos 2008 or maybe a vista (not sure) OS. Expanding on a Windows 2003 doesn’t produce the same files !

    Delfim.

  13. Delfim says:

    I have the following issue with windows 2008 x64 guest and storflt.sys :

    Windows cannot verify the digital signature for this file

    Is there anybody had this problem ?

    Thanks,

    Delfim.

  14. Now that we’ve reached the RTM milestone with Hyper-V (and why I’m actually on vacation), here’s the

  15. Hyper-v says:

    Mike's Blog: Now that we've reached the RTM milestone with Hyper-V, here's the updated script

  16. In the week or so since Hyper-V RTMed there has been a huge amount of coverage on various websites. Here's

  17. Updating a WinPE Image with Hyper-V Integration Components Drivers (Hyper-V RTM)

  18. NoelBlanc says:

    hello,

    in W2K8R2, i create a vm for winpe3. Drivers for hyperV seems OK. But not services hyperV. I The program vmicsvc.exe exist in system32.

    I use drvload.exe to install them from the vmguest.iso and the file windows6…

    When i launch "net start vmickvpexchange", service starts but stop with error 87 (incorret parameter).

    What is wrong for me?

    Also, can you speak more about the use of the group "vmickvpexchange".

    Thank you very mutch.