Combine drivers from multiple Win7 installs to single image

waikwindows 7

I need to prepare a Windows 7 image with drivers for multiple systems (Lenovo laptops).

I currently have an image prepared on one laptop type but need to grab the drivers appropriate for the other laptop types as well to ensure that it works on all systems.

From what I can tell, the procedure will be:

  • create a boot CD with imageX
  • take a .wim image prepared on the first type of systems
  • take .wim images from the other systems
  • mount the other images in WAIK
  • extract the drivers from the other images
  • inject the drivers into the first .wim
  • boot a system with the boot CD and redeploy the updated .wim image into the Windows partition
  • take an image of the drive with usual imaging tools

This all seems a little too convoluted, but I'm willing to do it to get the proper drivers into the image.

This is (seemingly) necessarily complicated by having more than one OS on the disk image.

Am I on the right track?

Best Answer

Since you have standardized on Lenovo systems, you will definitely want to look at two things:

  1. ThinkPad Driver Packs for SCCM
  2. The ThinkVantage Update Retriever. Lenovo also has a forum post about it here.

Both methods are documented in this guide from Lenovo.

Lenovo driver packs for SCCM

These can be downloaded from http://download.lenovo.com/express/sccm.html

They are simple self extracting archives, with all the drivers already in the proper .inf format. Nice and easy, just download the packs for all your models, point Dism at that folder with the /recurse switch, and you're set.

So why did I even list another method? Because Lenovo hates us.

  • They don't seem to update the driver packages very often, so they often contain older versions of the drivers. Not always a big deal, but sometimes it is.
  • They don't have driver packs for all their models. If your laptops are fairly new, that shouldn't be a problem. But we were still using some older ones, and they don't have driver packs for them.

For what it's worth, drivers are the main reason I've convinced my work to go exclusively with Dell for laptops. I used to love Lenovos, but Dell has ready to go driver packs for ALL their systems. Just extract them and import them into your deployment tool (Dism, WDS, MDT, SCCM, etc).

ThinkVantage Update Retreiver

For a long time this has been the only method that works. For some models of laptops that is still the case.

The original intended purpose of the update retriever is to have your own local mirror for use with Lenovo's system update tool, or to push out driver and lenovo software updates. However, a lot of people skip the Lenovo way of doing things, and add the drivers to whatever deployment methods they are already using. Lenovo's ThinInstaller is their way of doing it.

The basic procedure for the way you are doing it now is:

  • Install the Update Retriever
  • Create a repository - tell it where to store it's files. These files are not in the raw .inf form you need - they are for use with Lenovo's tools. But we will fix that.
  • Next you want to add new systems - enter the Machine type (first 4 digits of the model code), operating system and language for each type of laptop you have.
  • The tool will list all the drivers available for all those models. You pick which drivers you want to install. You can just select them all, but there may be some Lenovo "helpful utilities" in there that you want to skip.
  • It will spend a while downloading. Go get a coffee. Or come back in the morning if you have a slow connection, or Lenovo's site is slow.
  • Next, and this is the important step, export the drivers from the repository. Specify a new path to save them all to, and choose which ones to export.
  • For some drivers, this will give you INF files. Unfortunately for most, it gives you setup.exe type driver install files. Now you have to go into each folder and extract the files with something like Universal Extractor, which can get you the actual .inf driver files.
  • Mount your image, and use Dism with the /Add-Driver and /Recurse options - point it at your newly extracted driver folder.

This is a lot of steps. But it's MUCH faster than mounting each image and extracting drivers. It also ensures you get the newest versions of the drivers.

Other things to improve on and speed up deployment

Adding drivers to the WIM, deploying the WIM to a system, then capturing an image of it sounds like a lot of extra work to me. I'm not quite clear if you are making different images because the systems have different hardware, or different configurations of software. If the former, you only need one image. If the latter, you still need multiple images.

Either way, there are faster ways of doing it.

Microsoft Deployment Toolkit is Microsoft's free method of automating deployment - it has the advantage that you can adjust settings and software installed so you don't have to make separate images, just a big list of features and software to apply to a specific type of machine. Unfortunately, it has a bit of a learning curve, and I haven't had time to fully figure out how best to implement it.

Windows Deployment Services is a role for Server 2008+. It works quite well, and is what I currently use to reimage machines. The basic process is this:

  • Setup a reference system with the software and settings you want. Don't worry about drivers.
  • Capture that as a WIM file to the WDS server (it comes with a tool to do that - you can either boot from a CD or network boot).
  • Repeat for each unique set of os/software/settings - hopefully you don't have too many. I chose to make all our systems the same, and use GPOs to deploy specific software for some departments.
  • Add a boot image - which is found on the normal os install cd.
  • Add all the drivers to the WDS server. Just go to drivers, import and point it at a folder full of .inf's. It will do the rest.
  • Optionally make an unattended answers file for the images you captured.
  • Add the drivers for network and storage to the boot image. On server 2008r2 for windows 7+ images you can do this from the gui with a few clicks. For older ones you must export the boot image, add drivers with the WAIK tools and import again.
  • Network boot (or boot from CD) and choose which of those captured images you want to install.
  • During the deployment, WDS will automatically install all the relevant drivers for the hardware in that system - so your same image works across different machines. And if you go buy a Dell tomorrow, just import Dell's driver pack to the WDS server - no need to change your image file at all.
  • WDS also support multicast transmission - which means you can image as many machines as you have network and power outlets for at once, in the same amount of time as imaging one, and without killing your network with traffic.

Both MDT and WDS are free (or at least included with a windows server OS), so I would check them both out. WDS is easy to setup and get going in a day or two. MDT takes more time, but is more powerful - I think you end up doing a lot more work setting it up initially, but a lot less work maintaining it afterwards. Since this isn't a super critical role, I have in the past installed windows server on a regular desktop and setup WDS. Works just fine, and you can try windows server for awhile (180 days?) before buying to make sure it will work out for you.