Sysprep[1]
Sysprep was originally introduced for use with Windows NT 4.0. Later versions introduced for Windows 2000 and Windows XP are available for download from Microsoft and included in the Windows CD. Windows Vista marks the first version of Microsoft's NT operating system to include a hardware abstraction layer (HAL) independent version of Sysprep in the "out of box" installation.
Desktop deployment is typically performed via disk cloning applications. Sysprep can be used to prepare an operating system for disk cloning and restoration via a disk image.
Windows operating system installations include many unique elements per installation that need to be "generalized" before capturing and deploying a disk image to multiple computers. Some of these elements include:
Sysprep seeks to solve these issues by allowing for the generation of new computer names, unique SIDs, and custom driver cache databases during the Sysprep process.
Administrators can use tools such as SetupMgr.exe (Windows XP) or the Windows Automated Installation Kit (Windows Vista/7/Server 2008) to generate answer files that Sysprep will process on new computer deployments.
Problem Description
While following these instructions to change the SID of a Windows 2008 Standard appliance, we encountered an error while running sysprep. The error message that popped up said, "A fatal error occurred while trying to sysprep the machine." If you look at the logs, located at C:\Windows\System32\sysprep\Panther\setuperr.log, the messages you should see for this problem is:
|
2013-07-18 22:31:45, Error [0x0f0043] SYSPRP WinMain:The sysprep dialog box returned FALSE 2013-07-18 22:38:30, Error [0x0f0082] SYSPRP LaunchDll:Failure occurred while executing 'C:\Windows\System32\spbcd.dll,Sysprep_Generalize_Bcd', returned error code 2[gle=0x00000012] 2013-07-18 22:38:30, Error [0x0f0070] SYSPRP RunExternalDlls:An error occurred while running registry sysprep DLLs, halting sysprep execution. dwRet = 2[gle=0x00000012] 2013-07-18 22:38:30, Error [0x0f00a8] SYSPRP WinMain:Hit failure while processing sysprep generalize internal providers; hr = 0x80070002[gle=0x00000012] |
This message indicates that the system reserve partition is either offline, or the system reserve partition label is missing.[2] A possible reason for this partition being unavailable is that some 3rd party storage Disk or Storage Management software is installed that may bring all the volume without drive letter offline, and generally, the system reserve partition does not have a drive letter assigned.[3]
If you continue to follow the instructions in the CA AppLogic documentation, it mentions that if you do encounter a fatal error while running sysprep, the solution is to run the command "mountvol/e", which tells the OS to automount all partitions upon reboot, and then reboot the appliance to rerun sysprep. The problem with this solution is that sysprep does not have the ability to rollback the changes it has made when it encounters a failure, leaving your system in an invalid state. So when you rerun sysprep after the reboot, you will encounter another error. The error message in the popup window says, "\"A fatal error occurred while trying to sysprep the machine." The setuperr.log will say:
|
2013-07-18 23:01:56, Error [0x0f0073] SYSPRP RunExternalDlls:Not running DLLs; either the machine is in an invalid state or we couldn't update the recorded state, dwRet = 31 2013-07-18 23:01:56, Error [0x0f00ae] SYSPRP WinMain:Hit failure while processing sysprep cleanup external providers; hr = 0x8007001f |
There is no way to recover from this error and the only solution is to recreate the Windows image from the beginning.[4]
Solution
The solution here is to run check to make sure the system partition is mounted and online BEFORE you run sysprep. You can simply run the command, "mountvol/e" and reboot. Alternatively, you may use the "diskpart" utility to check the status of the of the system partition, mount the partition if necessary, and enable automount. To do this, go to "Start" > "Run" and enter "diskpart". In the command prompt that appears run the following:
|
DISKPART> list volume ## you can check to see if the 100MB system partition is online or offline, offline means it is not mounted DISKPART> select volume=0 ## this assumes the 100MB system partition is volume 0 DISKPART> online volume DISKPART> automount ## this checks if automount is enabled DISKPART> automount enable |
References
http://en.wikipedia.org/wiki/Sysprep
http://social.technet.microsoft.com/Forums/windows/en-US/2a488216-ee1a-4579-b0a9-cd41fac7662e/windows-7-sysprep-has-encountered-a-fatal-error-not-to-do-with-rearm-count
http://support.microsoft.com/kb/2419286
http://support.microsoft.com/kb/947212
|
Copyright © 2013 CA Technologies.
All rights reserved.
|
|