Tuesday, November 13, 2012

Injecting drivers to Windows Deployment Services (WDS) boot image

I’d like to first state that I’m in no way a WDS (Windows Deployment Services) expert as desktop deployment was always a realm that I never really got into.  With that being said, I get the odd situations where I’m asked to assist with WDS imaging tasks and because I was able to sit down with someone today to have them show me how to inject drivers a boot image so that a desktop or laptop would boot, I took the time to document the process and thought it would be a good idea to blog this so that if I ever had to do it again, I would be able to refer to this post.

**Note that the following steps may not be completely accurate but I know that it worked for

The typical error message we get presented when a network card driver isn’t present in the boot image is something along the lines of:

… Unable to connect to deployment share…

Without a proper network card driver, the desktop or laptop you intend on imaging with WDS will not work.  I’ve given the instructions found in the following post a try but still wasn’t able to boot:

  1. Go to the manufacturer website to get the network driver for your laptop or just go to intel website (and see that it is not an old driver, so use up to date driver)
  2. Import the driver to Out-Of-Box drivers
  3. Update the deployment share
  4. Open WDS console, and replace the boot image with the new one created.
  5. Restart your laptop on PXE

http://social.technet.microsoft.com/Forums/en-US/mdt/thread/2baf7f09-4b3b-4bcc-a971-4ee0bedaf7fc

Instead, engineer who was responsible for the WDS infrastructure at this client site told me that what we should be using is the DISM (Deployment Image Servicing and Management) tool which is command line based.  More information about the switches for DISM can be found at the following URL: http://technet.microsoft.com/en-us/library/dd744382(v=ws.10).aspx

Identify .wim boot image to update:

Begin by identifying the boot image file (.wim) that you would like to inject the network card’s driver into:

E:\RemoteInstall\Boot\x86\Images\LiteTouchPE_x86.wim

clip_image002

Since we’ll need to mount the image to a temporary folder, create one on a volume that has enough space for the files.  The folder I created is located on the E drive and is named Temp.

Mount the boot image to update:

Proceed with mounting the share with the following command:

dism /mount-wim /wimfile:E:\RemoteInstall\Boot\x86\Images\LiteTouchPE_x86.wim /index:1 /Mountdir:E:\Temp

A an output similar to the following will be displayed:

C:\>dism /mount-wim /wimfile:E:\RemoteInstall\Boot\x86\Images\LiteTouchPE_x86.wi

m /index:1 /Mountdir:E:\Temp

Deployment Image Servicing and Management tool

Version: 6.1.7600.16385

Mounting image

[==========================100.0%==========================]

The operation completed successfully.

C:\>

clip_image002[4]

Navigating to the Temp folder we created for the image mount will show the following folders:

clip_image002[6]

Locate the drivers for the laptop or desktop:

With the image to be updated mounted, proceed with locating the folder that contains the drivers:

clip_image002[8]

E:\source\Drivers\T520\Network\LAN\Intel PRO1000 LAN Adapter Software for 64-bit Windows\PRO1000\Win32\NDIS5x

clip_image002[10]

Inject the drivers into the boot image:

Continue by executing the following command to inject the drivers:

dism /image:e:\Temp /add-driver /driver:"E:\source\Drivers\T520\Network\LAN\Intel PRO1000 LAN Adapter Software for 64-bit Windows\PRO1000\Win32\NDIS5x"

A an output similar to the following will be displayed:

C:\>dism /image:e:\Temp /add-driver /driver:"E:\source\Drivers\T520\Network\LAN\

Intel PRO1000 LAN Adapter Software for 64-bit Windows\PRO1000\Win32\NDIS5x"

Deployment Image Servicing and Management tool

Version: 6.1.7600.16385

Image Version: 6.1.7600.16385

Searching for driver packages to install...

Found 7 driver package(s) to install.

Installing 1 of 7 - E:\source\Drivers\T520\Network\LAN\Intel PRO1000 LAN Adapter

Software for 64-bit Windows\PRO1000\Win32\NDIS5x\e1000325.inf: The driver packa

ge was successfully installed.

Installing 2 of 7 - E:\source\Drivers\T520\Network\LAN\Intel PRO1000 LAN Adapter

Software for 64-bit Windows\PRO1000\Win32\NDIS5x\e1c5132.inf: The driver packag

e was successfully installed.

Installing 3 of 7 - E:\source\Drivers\T520\Network\LAN\Intel PRO1000 LAN Adapter

Software for 64-bit Windows\PRO1000\Win32\NDIS5x\e1e5132.inf: The driver packag

e was successfully installed.

Installing 4 of 7 - E:\source\Drivers\T520\Network\LAN\Intel PRO1000 LAN Adapter

Software for 64-bit Windows\PRO1000\Win32\NDIS5x\e1k5132.inf: The driver packag

e was successfully installed.

Installing 5 of 7 - E:\source\Drivers\T520\Network\LAN\Intel PRO1000 LAN Adapter

Software for 64-bit Windows\PRO1000\Win32\NDIS5x\e1q5132.inf: The driver packag

e was successfully installed.

Installing 6 of 7 - E:\source\Drivers\T520\Network\LAN\Intel PRO1000 LAN Adapter

Software for 64-bit Windows\PRO1000\Win32\NDIS5x\e1r5132.inf: The driver packag

e was successfully installed.

Installing 7 of 7 - E:\source\Drivers\T520\Network\LAN\Intel PRO1000 LAN Adapter

Software for 64-bit Windows\PRO1000\Win32\NDIS5x\e1y5132.inf: The driver packag

e was successfully installed.

The operation completed successfully.

clip_image002[12]

Unmount and commit the changes:

With the boot image updated, proceed with unmounting the image and committing the changes:

dism /unmount-wim /mountdir:E:\Temp /commit

A an output similar to the following will be displayed:

C:\>dism /unmount-wim /mountdir:E:\Temp /commit

Deployment Image Servicing and Management tool

Version: 6.1.7600.16385

Image File : E:\RemoteInstall\Boot\x86\Images\LiteTouchPE_x86.wim

Image Index : 1

Saving image

[==========================100.0%==========================]

Unmounting image

[==========================100.0%==========================]

The operation completed successfully.

clip_image002[14]

Replace boot image:

With the boot image updated, proceed with using the Windows Deployment Services administrative console to replace the existing boot image:

image

clip_image002[16]

clip_image002[18]

clip_image002[20]

clip_image002[22]

clip_image002[24]

clip_image002[26]

clip_image002[28]

clip_image002[30]

Hope this helps anyone who may need to inject new drivers into a boot image and, like me, doesn’t know how to do it.

3 comments:

Kollol Biswas said...

Thanks for the post. However after I inject the driver I faced a new issue.

Once the injection is completed the committed I added the new boot image and it showed up on the wds panel. then it vanishes and does not show up again. however the files are there in the Images folder...

Any Suggestions?

Anonymous said...

Change index=1 to index=2 that that will prevent the new updated image from disappearing.

Unknown said...

You can inject the drivers into a boot.wim file just by right-clicking the boot file in WDS and choosing "add driver packages to image". If you have no drivers in WDS yet, you need to add the driver package by right-clicking the drivers folder in WDS console under the server name and choose "Add driver package". Then just choose a folder with the driver inf in it and it will search and present what drivers you can add. Follow the prompts.

The process you describe above is primarily what one would use to add drivers to an install image, not a boot image.