Deploying Windows 7 Part 23: Managing Drivers – Introduction

by [Published on 11 May 2010 / Last Updated on 11 May 2010]

This series of articles on deploying Windows 7 continues by showing how you can inject boot-critical device drivers using MDT 2010.

If you would like to read previous articles in this series, please go to:

Tip:
You can find more information about automating LTI deployment in the Windows 7 Resource Kit from Microsoft Press. I am the lead author for this Resource Kit and I also maintain the Unofficial Support Site for the Windows 7 Resource Kit with answers to questions posted by readers, as well as links to the latest resources on Windows 7 deployment, administration and troubleshooting.

Injecting Boot-Critical Device Drivers: A Story

Here's a simple example of how device drivers can add complexity to even a simple deployment scenario. I have an old Dell PowerEdge 800 server in my lab, and a while back I wanted to repurpose this server by installing Windows Server 2008 R2 on it. The server has an integrated Dell CERC 6-channel SATA hardware RAID controller with three 80 GB SATA hard drives configured as a RAID 0 array (i.e. stripe set). So I put the Windows Server 2008 R2 product media into the DVD drive in the server, booted the server, and proceeded through the installation steps. When I got to the screen titled "Where do you want to install Windows?" a message was displayed saying "No drives were found. Click Load Driver to provide a mass storage driver for installation."

What's the problem here? It seems that Windows Server 2008 R2 does not include an inbox driver for this particular hardware RAID controller because the PowerEdge 800 server is an older model that was designed for Windows Server 2003. Now at the time I was doing this there was no Windows Server 2008 R2 certified driver for the controller, but there was a 64-bit Windows Server 2003 driver available and a quick chat with a Dell support technician suggested that this driver "hasn't been validated but seems to work" with Windows Server 2008 R2. So I downloaded the self-extracting Windows Server 2003 x64 driver package and extracted the files from the package, which look like this:


Figure 1: Windows Server 2003 x64 driver files for Dell CERC 6-channel SATA hardware RAID controller

Note:
While writing this article I checked the Dell Support site and discovered that they have now released a certified Windows Server 2008 driver for their CERC 6-channel SATA hardware RAID controller, which breathes new life into my old PowerEdge 800 server.

So I copied these mass storage controller driver files to a flash drive, rebooted my server with the Windows Server 2008 R2 product media in the DVD drive, and walked through Setup again. This time when I got to the screen titled "Where do you want to install Windows?" I inserted my flash drive and clicked Load Driver, then I clicked Browse and selected the folder on my flash drive where the driver files were stored. At that point the "Select the driver to be installed" screen showed the following mass storage driver available for installation:

DELL CERC SATA 1.5/6ch RAID Controller (C:\<path>\cercsr6.inf)

I clicked selected the driver, clicked Next and continued with a successful installation of Windows Server 2008 R2 on the machine.

Now, most administrators have gone through this kind of procedure before, but the question is: How does this work with Microsoft Deployment Toolkit?

Injecting Mass Storage Drivers Using MDT 2010

First, what happens if you try using MDT to deploy Windows on a system for which there is no in-box mass storage controller driver available? In my scenario above, this would mean first importing Windows Server 2008 R2 into the Operating Systems node in the Deployment Workbench and then creating a new task sequence based on the Standard Server Task Sequence template. Then take my existing Lite Touch Windows PE CD, boot my server with it, and wait for MDT to perform the install. What happens when I do this is that when the wizard begins to gather information concerning the local disk system on the server, the wizard fails with an error screen that says "Operating system deployment did not complete successfully." Expanding the details on this screen indicates that "Disk (0) was not found. Unable to continue. Possible cause: Missing Storage Driver." That's pretty informative, and it's just what we would expect in this scenario.

What I need to do now is to add the driver I downloaded to MDT as an out-of-box driver. To do this, begin by right-clicking on the Out-Of-Box Drivers folder in the Workbench and select Import Drivers:


Figure 2: Step 1 of adding an out-of-box driver into the Deployment Workbench

In the Import Driver Wizard that appears, click Browse to select the folder where the mass storage driver is located:


Figure 3: Step 2 of adding an out-of-box driver into the Deployment Workbench

Click Next and review the information on the Summary page:


Figure 4: Step 3 of adding an out-of-box driver into the Deployment Workbench

Click Next and verify on the Confirmation page that the driver files have been successfully imported into the Workbench:


Figure 5: Step 4 of adding an out-of-box driver into the Deployment Workbench

Figure 6 below shows that the driver files for the mass storage controller have been successfully imported into the Workbench:


Figure 6: The driver files have been successfully imported into the Deployment Workbench

The file we are mainly interested in is the cercsr6.inf file; double-clicking on this file displays its properties:


Figure 7: General tab of the driver's properties

As expected, the General tab shows that this driver is intended only for x64 systems and not x86. If desired I could add a comment here like "This old driver for Windows Server 2003 x64 is reported to work with Windows Server 2008 R2 so I'm going to try it" or something similar.

Clicking the Details tab displays additional read-only information concerning the driver:


Figure 8: Details tab of the driver's properties

Are we finished? No, not quite. We have imported the driver into the Workbench, so the driver is now available for installation on the target computer but it hasn't yet been incorporated into our Lite Touch Windows PE image files, that is into the files LiteTouchPE_x64.wim and LiteTouchPE_x64.iso. What we need to do is to inject the driver into our image files so that the driver will be available during the initial WinPE phase of Setup, otherwise Setup will fail because WinPE would not be able to see the hard drives in the system. Fortunately, MDT makes injecting drivers into WinPE images a snap—simply right-click on your deployment share and select Update Deployment Share and any changes made to your environment will be injected if required into your WinPE images. Figure 9 shows the results from doing this, and you can see that the boot image (.wim) file was mounted, the mass storage driver was injected, and the.iso file associated with the boot image was re-created:


Figure 9: Injecting the mass storage driver into the WinPE boot image by updating the deployment share

Now I simply burn my LiteTouchPE_x64.iso file onto recordable CD media and use it to boot my old PowerEdge server. When I do this, the installation proceeds normally and Windows Server 2008 R2 is successfully installed on the system.

Conclusion

This article examined how to add an out-of-box driver to MDT in order to deploy Windows onto a system for which no in-box mass storage controller driver was present. But what if you need to add dozens, hundreds or thousands of out-of-box drivers to MDT for different operating systems you need to deploy, for different system architectures (x86 or x64), and for different makes and models of systems? In the next article we'll learn how you can use two new features of MDT 2010, namely custom folders and select profiles, to manage complex driver scenarios.

If you would like to read previous articles in this series, please go to:

Advertisement

Featured Links