All spaced out
Well, as this is my first post on my blog I thought I'd use it to share the solution to a problem I had recently so that nobody else needs go through the stress of debugging it!
My current project is to install and configure BDD 2007 so that my client can create images for their standard desktop build. The build is Windows XP SP2 with all the core applications, i.e. Office 2003, PDF viewer etc. The problem was that BDD was failing after running, what appeared to be successfully, Sysprep at the end of the reference machine installation. The error displayed was:
"The HKLM\System\Setup\CloneTag registry value did not exist"
And, as advised, the key really did not exist. I had no other errors displayed and if I rebooted the computer manually Sysprep would run normally and the machine would restart into Windows XP. So, I had an error message which was 100% reproducible, but no symptoms of error on the computer, i.e. mini-setup ran correctly upon restart.
So, dipping into the LTISysprep.wsf script, I removed the '-quiet' parameter from the Sysprep command and relaunched the BDD installation process to see if I would receive any more information. This gave me a new error message which said:
"An error occurred while trying to update your registry".
Well, I knew that already because BDD had told me that the CloneTag key did not exist! Additionally, this problem only occurred if I used the Sysprep.inf file that the client gave to me from their own installation process. Any other Sysprep.inf file worked normally, thus meaning that there was a problem in the contents of the clients. After spending a lot of time with many different combinations of configuration, I asked for help from some other Microsoft BDD experts. Ben Hunter (thanks again Ben) replied back to me after reviewing the Sysprep.inf saying that the problem was caused by a simple space before and after the equals sign in the following line:
PCI\VEN_8086&DEV_27C1&CC_0106 = %systemdrive%\drivers\sata\iaahci.inf
Low and behold, by removing the space, all worked correctly! My next question was simple. If the client has been using the same Sysprep.inf file for a few years, then why have they never experienced this problem before? And also, why could I find no other documented example of someone with the same problem when I searched on the Internet? The answer is simple; if there is an error in the Sysprep.inf file then Sysprep will simply ignore the line completely if you have used the '-quiet' parameter. Seeing as almost everyone uses this parameter, the error occurred silently and never reared it's ugly head. One further thing, the offending line in the Sysprep.inf file is there so that Sysprep will load the correct drivers for a SATA disk. Seeing as a large majority of people still use IDE, this line is not required thus reducing the chances of having a line like this in the file. The strange thing is that other values in the Sysprep.inf file will still work correctly if they have a space before/after the equals sign. For some reason the section for the mass storage devices is a bit more picky than the rest of the areas!
The solution was simple, but it took quite a few very frustrating hours to find it.
Comments
Anonymous
January 01, 2003
Jacky, In that scenario you really need SMS2003, although you could certainly script the upgrade and perhaps deploy it via Group Policy. It really depends on how your infrastructure is set up. But no, MDT would not be the tool to use. DanielAnonymous
January 01, 2003
Jacky, there is defintely something wrong with the content of your sysprep file. What you need to do is start again with a very basic file, and then slowly add the lines to it until you see the problem. However, it is quite likely to be an issue with the drivers path. DanielAnonymous
January 01, 2003
Jacky, You can deploy almost any type of software with MDT, as long as it is packaged in a format that allows a silent install; you can even do the packaging yourself! Check out my other blog for plenty of info: http://blogs.technet.com/deploymentguys. Regards, DanielAnonymous
January 01, 2003
Hi Jacky, Check to see if you have any spaces in the sysprep.inf file as I explained in the blog. Otherwise, you could post the contents of it here and I can take a look. DanielAnonymous
January 01, 2003
Jacky, As far as I can see, your sysprep file seems OK. BDD/MDT runs SYSPREP with the -quiet switch. In this post I explain how to remove this switch from the script, do this and then re-run the task sequence. You should get an error message appear from SYSPREP when it fails. HTH, DanielAnonymous
January 01, 2003
Those entries are added by Sysprep before reboot. This is normal. Regarding the hal.dll message, are you applying the image to the same computer, or to a different one? If so, then you are coming up against a problem with the computers requiring different HALs. There are no Microsoft-supported ways to, solve this, but other people have posted solutions to it. Use live.com to search for the answer. You have to be careful when applying an image created on one computer to another. If the hardware differs a lot, then you will have problems unless you have taken them into account. BTW, Windows Vista has been engineered to not have this problem! Regards, DanielAnonymous
January 01, 2003
Mike, this is a problem with the sysprep.inf rather than being OS specific. Try creating your sysprep.inf file with the tool that comes in the deploy.cab file on your CD. If that works OK then the problem is with your file. DanielAnonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
The comment has been removedAnonymous
November 30, 2007
Daniel- Have you seen this with Server 2003? I am getting this error repeatedly with machines deployed from BDD or MDT. Each time I attempt to run sysprep -mini -quiet -reseal -forceshutdown sysprep does not complete and the shutdown does not happen. If I take out the -quiet, I get an error saying unable to udpate registry. I've tried every version of sysprep I could find on Microsoft's site, but each one gives me the same result. A failed sysprep. I've also taken out every mass storage driver I have added to my sysprep.inf and I'm letting sysprep build all the mass storage drivers itself. Still, sysprep fails. Any ideas? TIA! Mike D.Anonymous
December 21, 2007
I've encountered this issue when the Product key used during Windows Setup did not match the Product key specified in sysprep.inf.Anonymous
August 31, 2008
Hello, I meet the same issue as you. This is the error message: The HKLMSystemSetupCloneTag registry value did not exist According to your guide, I try to open the sysprep.inf file in the client, but I can't find out any unusual as you said, I am using MDT not BDD2007.Anonymous
September 02, 2008
Dear Daniel, I am not fully understand the meaning of you said. What should I do can fix this issue?Anonymous
September 07, 2008
Dear Daniel, I tried to manually use sysprep command to sysprep system, but after a few minutes, there will be an error message. System Preparation Tool 2.0 An error occurred while trying to update your registryAnonymous
September 10, 2008
Dear Daniel, I tried to manually used command "sysprep" , but it also display the error message. System Prepartion Tool 2.0 An error occured while trying to update your registry . Unable to continueAnonymous
September 10, 2008
Dear Daniel, Thanks a lot. I will follow your guides to do it. By the way, If I want to deployment the other software(not just microsoft software) and update this software, but I don't want to use SMS, could you provide me the other solution about it? The best thing this software is free.Anonymous
September 11, 2008
Dear Daniel, If I want to update a software, for example, update from Adobe7.0 to Adobe8.0, but I don't want to use SMS2003(It is so expensive) and not want to reinstall OS. MDT also can do it? Thanks a lotAnonymous
September 21, 2008
Dear Daniel, I follow your guide to debug the sysprep.inf file, I tried to add the lines one by one, but it is very strange that when I run the command "sysprep -norboot" the other lines will be automatically added in the [SysprepMassStorage], so it will occur the same problem again. currently, I use WDS to capture image and deploy the image in the other laptop, but I found that if I just format the disk C(disable "Format and Partition Disk" in the Task Sequence), it can successful, but If I repartition the disk, after the laptop reboot again, it will display a error "hal.dll missing or corrupt". Note:This laptop is a Dell 630 laptop.