Boswell's Q&A

Ghost of a New Machine

Sysprep doesn't automatically include all mass storage drivers, causing imaged desktops to get spooked by blue screens.

Question: I'm trying to deploy desktop images in my small company. I'm using Sysprep on the source desktop prior to imaging with Ghost. When I apply the image to another desktop from a different manufacturer, I get a blue screen of death. These are standard PC desktops without any special peripherals. What gives?

—Ed

Get Help from Bill

Got a Windows or Exchange question or need troubleshooting help? Or maybe you want a better explanation than provided in the manuals? Describe your dilemma in an e-mail to Bill at mailto:[email protected]; the best questions get answered in this column.

When you send your questions, please include your full first and last name, location, certifications (if any) with your message. (If you prefer to remain anonymous, specify this in your message but submit the requested information for verification purposes.)

Ed: I'm betting that your bugcheck (Blue Screen of Death) problem is a result of a difference in the IDE interface used by the different machines in your organization.

When you run Sysprep on one platform and deploy the image to another platform, you would ordinarily expect Plug-and-Play to handle any hardware differences (assuming that the machines use the same version of Ntoskrnl.exe and Hal.dll). However, mass storage drivers represent a special case. The boot loader needs to load the mass storage devices prior to initializing the operating system, so there's no opportunity to let the Plug-and-Play Manager shuffle around drivers. For this reason, it's fairly common to get a 0x0000007b bugcheck following the deployment of a Sysprep image to a machine from a different vendor, or different models from the same vendor, even though you're using what appears to be a vanilla IDE controller in both cases.

One way to avoid this problem is to include all the mass storage drivers in the Sysprep image, not just the drivers used by the source machine. The version of Sysprep.exe that comes with Windows Server 2003 has a special switch for doing just this. It's called -bmsd. Here's how it works.

On the source desktop, create a folder called Sysprep at the root of the C drive (C:\Sysprep). Put a copy of the Windows Server 2003 version of Sysprep.exe and Setupcl.exe in this folder. Extract them from the Deploy.cab file on the Setup CD. You'll find Deploy.com under \Support\Tools.

Put your Sysprep.inf file in the same C:\Sysprep folder. You probably prepared this file using Setup Manager.

Edit the Sysprep.inf file with Notepad. Add these entries to the bottom of the file:

[Sysprep]
BuildMassStorageSection=yes

[SysprepMassStorage]

Sysprep.exe uses these entries to provision the file with the mass storage drivers.

Now, open a command prompt and navigate to C:\Sysprep.

Run sysprep -bmsd. You'll see a pop-up window with a large hourglass open for a few seconds, then close. There will be no other graphical indication that the process has succeeded.

Open the Sysprep.inf file and look under the [SysprepMassStorage] section. You'll see dozens and dozens of entries.

Now run Sysprep -quiet -reseal -reboot. This will take quite a bit longer because Sysprep has to collect the specified mass storage drivers.

When you apply this image to the other desktops, the deployment should go smoothly with no bugchecks.

Hope this helps!

About the Author

Contributing Editor Bill Boswell, MCSE, is the principal of Bill Boswell Consulting, Inc. He's the author of Inside Windows Server 2003 and Learning Exchange Server 2003 both from Addison Wesley. Bill is also Redmond magazine's "Windows Insider" columnist and a speaker at MCP Magazine's TechMentor Conferences.

comments powered by Disqus
Most   Popular