Diagnose Image Builder Wizard Installation Problems (Standard 7 SP1)
7/8/2014
Microsoft Corporation
June 2010
Summary
This technical article provides an overview of the log files created by Image Builder Wizard and how to use them to diagnose Image Builder Wizard installation failures.
Applies To
Windows Embedded Standard 7
Introduction
Find the Logs
Access the Logs
How Image Builder Wizard Works
View the Logs
Interpret the Logs
Additional Help
Conclusion
Introduction
When errors occur during the installation of a Windows Embedded Standard 7 image, the error logs generated by Image Builder Wizard will help you determine what error is occurring and why.
Find the logs
When you are installing a Standard 7 image through Image Builder Wizard, you may get a popup that resembles this.
The log files for Image Builder Wizard are located in a folder that is named Panther. The location of this folder will change depending on the phase of setup currently in progress. The logs have to be moved around because your disk is often formatted during the setup process.
Before installation starts, the logs are stored in the RAM drive (usually x:\windows\panther). However, the RAM drive goes away after setup restarts your device, so this is not a good permanent location for the log files. After Image Builder Wizard has formatted the device disk and created partitions, the logs can be moved to the hard disk. The permanent log location of c:\Windows\Panther\ directory does not exist yet, as the core Windows Embedded Standard 7 image has not been installed. Instead the logs are temporarily placed under c:\$windows.~bt\ but then moved to the final location of c:\windows\panther\ once the base Standard 7 installation has finished.
To summarize:
Installation Point |
Log File Location |
---|---|
While running "autorun" (before selecting Build an Image or Deploy an Answer File or WIM) |
No logs available |
Before installation actually starts (before selecting Next on the disk selection screen) |
x:\windows\panther |
After installation starts |
c:\$WINDOWS.~BT\Sources\Panther |
After installation completes |
c:\Windows\Panther |
Note
There are no logs available before Image Builder Wizard actually starts. This means that if for some reason, Image Builder Wizard cannot start, there will be no logs to help diagnose the failure. This is very rare. If you encounter this, try one of the options in the Additional Help section of this topic and the product team will assist you.
Note
x:</STRONG> and c:</EM> as shown earlier in this section are the typical drive letters for the RAM drive and the system drive respectively. Your device configuration may vary.
Access the logs
Because the Windows Explorer interface is not available in Image Builder Wizard, a Command Prompt window must be used to access the log files.
After an error is encountered in Image Builder Wizard, but before you select OK to dismiss the error, you can press Shift + F10 to open a Command Prompt window. You must do this before dismissing the error dialog because clicking OK to dismiss the error will cause setup to attempt to roll back the installation, potentially deleting your log files in the process.
If you are not familiar with Windows/DOS commands, you may want to look up a list of basic commands. The cd command is used to navigate between directories and the dir command is use to list files in the currently-selected directory.
In the following example, you can see the navigation to the c:\$WINDOWS.~BT\Sources\Panther directory and then the list of the directory contents which shows that the files we are interested in are present.
How Image Builder Wizard works
Before discussing each of the logs and what they contain, it will be helpful to know the phases of Image Builder Wizard and the ways different components log things.
Note
The phases described here are not directly equivalent to the Configuration Passes (1-7) in the settings in Image Configuration Editor.
- Phase A
In this phase, the Image Builder Wizard media is plugged into your device and the device is booted into Image Builder Wizard. Image Builder Wizard runs on top of the Windows Preinstallation Environment (Windows PE) 3.0 operating system. In Phase A, your device starts in Windows PE and the Autorun program starts. - Autorun
Autorun is the initial screen displayed when Image Builder Wizard is started and it has two main options: Build an Image or Deploy an Answer File or WIM. From the time Windows PE starts through to when the text Setup is starting is displayed, no Image Builder Wizard logs are created as Image Builder Wizard has not actually started yet. - Phase B
When you select Build an image, this calls the actual Image Builder Wizard program, which is setup.exe in the \sources\ folder of your Image Builder Wizard media. If you use the Deploy an Answer file or WIM option, this calls either setup.exe /unattend:MyAnswerFile.xml or setup.exe /installfrom:MyWim.wim, depending on whether you point to an answer file or a WIM. - Image Builder Wizard Engine
Here, if you decide not to use an answer file or if your answer file was incomplete, the Image Builder Wizard user interface will be displayed and you will be prompted to select packages, drivers, languages, to configure your installation disks, and so on If you are using an answer file, the Image Based Setup Engine processes your answer file in the background and configures the installation appropriately. - Phase C
After the installation is ready to start, the Image Based Setup Engine will expand the Embedded Core to the device installation disk and then pass off the installation of packages to a servicing tool named Deployment Image Servicing and Management (DISM). - DISM / CBS
DISM processes your answer file and calls into the operating system's Component-Based Servicing (CBS) stack to actually install the packages and apply settings. - Phase D
After most of the installation is finished, Image Builder Wizard will restart your device to finish the installation. - Online Setup
After your device has restarted, it will actually start in the Standard 7 operating system instead of into Image Builder Wizard. At this point setup is no longer being run from the DVD or USB disk that you originally started from, but instead from the hard disk on your device that you selected. In this phase of setup, installation finishes up with any last minute things that have to be done before your device is ready to use. - Phase E
The Out-of-Box Experience (OOBE) user interface is displayed (or hidden, if you specified that in your answer file) and setup is finished.
Important
If you try to change or repair an installation of Image Builder Wizard on a computer that has User Account Control (UAC) turned on, you may receive an error message: “The installation source for this product is not available. Verify that the source exists and that you can access it.” On Windows Vista, Windows 7, or later versions operating systems, if UAC is turned on, you cannot repair or change the installation from Programs and Features under Control Panel. Instead, change or repair your installation by using Setup.exe from the DVD.
View the logs
There are three main log files in the Panther directory:
- setupact.log
This log file lists every operation that Image Builder Wizard performs between the Image Builder Wizard Engine phase and the Online Setup phase mentioned previously. Because this log lists everything, it can be very large and difficult to read through. To diagnose errors, you can use the smaller and more specific setuperr.log. - setuperr.log
This log is a subset of setupact.log and only contains all messages of type "Error". When an error is encountered in Image Builder Wizard, the first thing to do is examine setuperr.log to locate the problem. - cbs_unattend.log
When Image Builder Wizard passes an answer file off to DISM to actually install the packages, the control is handled by DISM. Because of how this handoff works, the logging also transfers from Image Builder Wizard to DISM. Instead of recording the package installation messages to setupact.log, they are put in cbs_unattend.log. If you examine setuperr.log and see something mentioning DISM or CBS, then cbs_unattend.log is where you can find the problem. If setuperr.log does not mention DISM or CBS, then you should look in setupact.log for more detail.
To examine the log files on your device by using notepad.exe
Open a Command Prompt window on your device
Navigate to the Panther directory and enter
notepad logname.log
at the Command Prompt to open the log file. Or, enter a fully qualified path such asnotepad c:\$WINDOWS.~BT\Sources\Panther\logname.log
at the command prompt to open the log file.
Open a Command Prompt window on your device
Navigate to the Panther directory and enter
notepad logname.log
at the Command Prompt to open the log file. Or, enter a fully qualified path such asnotepad c:\$WINDOWS.~BT\Sources\Panther\logname.log
at the command prompt to open the log file.
As demonstrated in the following screenshot, reading a log file by using Notepad on Windows PE does not provide the best viewing experience. While it is easy and fast to access the logs, the screen resolution is usually low, giving you a small window to work with.
Instead you can copy the log files to external media so that you can read them on your development computer.
To copy the files to external media using xcopy
Open a Command Prompt window on your device
Navigate to the Panther directory and enter
dir
at the command prompt. Then verify the files you want are present in the directory.Enter
cd ..
at the command prompt to move up a directory as soon as you are sure the files you want are present in the Panther directory.Enter
xcopy /e /I Panther y:/myfailedinstalllogs
at the command prompt.
Open a Command Prompt window on your device
Navigate to the Panther directory and enter
dir
at the command prompt. Then verify the files you want are present in the directory.Enter
cd ..
at the command prompt to move up a directory as soon as you are sure the files you want are present in the Panther directory.Enter
xcopy /e /I Panther y:/myfailedinstalllogs
at the command prompt.
These steps are shown in the following screenshot.
Interpret the Logs
Setuperr.log
When a log file is opened in Notepad on your development computer, it will look like this:
To make it easier to read, the information in the screenshot earlier in this section has been transcribed into the following table:
Date/Time |
Type of Message |
Message Code |
Module |
Message |
---|---|---|---|---|
2010-03-16 10:44:55 |
Error |
[0x060766] |
IBS |
ApplyCbsPackagesAndSettingsFromUnattend File: DISM returned error exit code 3 |
2010-03-16 10:44:55 |
Error |
[0x06076d] |
IBS |
ApplyCbsPackagesAndSettingsFromUnattend File: See DISM Log file [C:\$WINDOWS.~BT\Sources\Panther\cbs_unattend.log] for more details. |
2010-03-16 10:44:55 |
Error |
[0x060768] |
IBS |
ApplyCbsPackagesAndSettingsFromUnattend File: Failed to use DISM to install packages and apply settings. Error code = 0x8007003 |
Notice that the error messages in setuperr.log point to a problem with DISM. This means cbs_unattend.log should be checked.
Cbs_unattend.log
This is a screenshot of the cbs_unattend log:
The following table includes the transcription of the pertinent rows in cbs_unattend.log:
Date/Time |
Type of Message |
Module |
Message |
---|---|---|---|
|
|
|
<Ignore these messages> |
2010-03-16 10:44:55 |
Error |
DISM |
DISM MSI Manager: PID=1248 Failed copying from C:\Windows\System32\Msi.dll to C:\$WINDOWS.~LS\PackageTemp\3a98f774-60af-4876-8e01-ac3e32caf53c\2C5C4631-A82B-4BE0-88F4-E01582D61C18\Msi.dll - CMsiApi::Initialize(hr:0x80070002) |
2010-03-16 10:44:55 |
Error |
DISM |
DISM MSI Manager: PID=1248 Failed to find Offline Aware MSI.dll from image(C:\Windows), hr = -2147024894 - CMsiManager::Initialize(hr:0x80070002) |
|
|
|
</Ignore these messages> |
2010-03-16 10:44:55 |
Info |
CBS |
Appl: Evaluating package applicability for package WinEmb-Font-Western-Required~31bf3856ad364e35~x86~~6.1.7600.16385, applicable state: Installed |
2010-03-16 10:44:55 |
Info |
DISM |
DISM Package Manager: PID=1248 Attempting install from source location [Y:\staged\ds\Packages\FeaturePack\x86~winemb-ie-core~~~~6.1.7600.16385~1.0\WinEmb-IE-Core.cab]. Full path [Y:\staged\ds\Packages\FeaturePack\x86~winemb-ie- |
2010-03-16 10:44:55 |
Error |
DISM |
DISM Package Manager: PID=1248 Incorrect parameter Y:\staged\ds\Packages\FeaturePack\x86~winemb-ie-core~~~~6.1.7600.16385~1.0\WinEmb-IE-Core.cab - path not found - CDISMPackageManager::Internal_CreatePackageByPath(hr:0x80070003) |
2010-03-16 10:44:55 |
Error |
DISM |
DISM Package Manager: PID=1248 Failed to get the underlying CBS package. - CDISMPackageManager::OpenPackageByPath(hr:0x80070003) |
2010-03-16 10:44:55 |
Error |
DISM |
DISM Package Manager: PID=1248 Failed to open package at location [Y:\staged\ds\Packages\FeaturePack\x86~winemb-ie-core~~~~6.1.7600.16385~1.0\WinEmb-IE-Core.cab]. - CPackageManagerUnattendHandler::Internal_InstallPackageFromSource(hr:0x80070003) |
2010-03-16 10:44:55 |
Error |
DISM |
DISM Package Manager: PID=1248 Failed to install package from source [0] - trying next source location. hr = [0x80070003] - CPackageManagerUnattendHandler::Internal_UnattendInstallPackage |
2010-03-16 10:44:55 |
Error |
DISM |
DISM Package Manager: PID=1248 Failed to Install the package [WinEmb-IE-Core~31bf3856ad364e35~x86~~6.1.7600.16385]. - CPackageManagerUnattendHandler::Internal_UnattendInstallPackage(hr:0x80070003) |
2010-03-16 10:44:55 |
Error |
DISM |
DISM Package Manager: PID=1248 Package failed to install [WinEmb-IE-Core~31bf3856ad364e35~x86~~6.1.7600.16385]. - CPackageManagerUnattendHandler::Internal_UnattendProcessPackage(hr:0x80070003) |
2010-03-16 10:44:55 |
Error |
DISM |
DISM Package Manager: PID=1248 Failed to process package at node <package[1]>. - CPackageManagerUnattendHandler::Apply(hr:0x80070003) |
2010-03-16 10:44:55 |
Error |
DISM |
DISM Package Manager: PID=1248 Failed to Apply the unattend. - CDISMPackageManager::Apply(hr:0x80070003) |
When scanning for errors, you will probably see the first two error messages shown previously between the <Ignore these messages> tags in the cbs_unattend log. These can be ignored.
As you can see, the first real "Error" that is reported is that the WinEmb-IE-Core.cab file was not found. Looking at the message before that error, you can see that DISM was trying to install the file. This file is the Internet Explorer 8 Engine and Display package and was included in the configuration this example used. For the purposes of this example, the file was deleted from the distribution share. The package is not there. DISM needs to install the package, so the DISM operation failed and that caused the whole setup to fail.
If you go back and examine the original error message popup you saw, "Windows Setup failed to install packages or apply component settings while offline servicing the image". Now that you have reviewed the logs, this error message makes sense. Setup failed to install a package. The log says the WinEmb-IE-Core.cab package is missing, therefore, you should try to figure out why it is missing and make sure that it is there in the future so, your installation will work.
Other Examples
Now that one failure mystery is solved, here are several other common problems to give you an idea of what to look for.
As shown later in this document, the error message STATUS_SXS_FILE_HASH_MISMATCH typically means that the setup media is corrupted. Recreating the Image Builder Wizard media, either by re-burning the DVD or re-copying the files to a USB drive) generally solves the problem. If that does not fix the problem, your original download may be corrupted, so re-downloading and re-creating the setup media may help.
Date/Time |
Type of Message |
Module |
Message |
---|---|---|---|
2002-01-01 04:17:34 |
Error |
CSI |
000000f4@2002/1/1:12:17:34.359 (F) d:\winmain\base\wcp\manifestparser\hashverify.cpp(633): Error STATUS_SXS_FILE_HASH_MISMATCH originated in function Windows::ManifestParser::Rtl::ValidateFileHash expression: (null) [gle=0x80004005] |
2002-01-01 04:17:34 |
Info |
CBS |
Failed to add \\?\C:\Windows\winsxs\pending.xml to WER report because it is missing. Continuing without it... |
2010-03-16 10:44:55 |
Error |
CSI |
000000f5 (F) STATUS_SXS_FILE_HASH_MISMATCH #1259668# from CCSDirectTransaction::VerifyFileHashesComponent: NetFx-MSCOREE_DLL, Version = 6.1.7231.0, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral, File: [ml:24{12},l:22{11}]"mscoree.dll" |
2002-01-01 04:17:41 |
Error |
CSI |
000000f6 (F) STATUS_SXS_FILE_HASH_MISMATCH #1259616# from CCSDirectTransaction::OperateEnding at index 76 (0x0000004c) of 94 (0x0000005e) operations, disposition 0[gle=0xd015001b] |
2002-01-01 04:17:41 |
Error |
CSI |
000000f7 (F) HRESULT_FROM_WIN32(ERROR_SXS_FILE_HASH_MISMATCH) #1246178# from Windows::COM::CComponentStore::InternalTransact(...)[gle=0x800736cc] |
ERROR_CRC is another typical file corruption error message. The same steps suggested earlier in this section may help resolve it.
Date/Time |
Type of Message |
Module |
Message |
---|---|---|---|
2010-03-15 13:43:12 |
Info |
CBS |
Failed to extract file update.mum from cabinet \\?\D:\ds\Packages\FeaturePack\x86~winemb-font-western-required~~~~6.1.7600.16385~1.0\WinEmb-Font-Western-Required.cab [HRESULT = 0x80070017 - ERROR_CRC] |
2010-03-15 13:43:12 |
Info |
CBS |
Failed to extract package manifest from cabinet [HRESULT = 0x80070017 - ERROR_CRC] |
2010-03-15 13:43:12 |
Info |
CBS |
Failed to initialize internal package [HRESULT = 0x80070017 - ERROR_CRC] |
2010-03-15 13:43:12 |
Error |
CBS |
Failed to create internal package [HRESULT = 0x80070017 - ERROR_CRC] |
E_OUTOFMEMORY means that your device has run out of RAM while it is running setup. This problem may occur more often on devices that have both low disk space and low RAM capacity or installations to removable media such as USB drives. This occurs because Image Builder Wizard attempts to automatically create a pagefile during setup to act as extra memory. Devices with low disk space may not have sufficient room for both the installation and the pagefile. Pagefiles cannot be created on removable media. Therefore, it is possible that your installation will use up all available RAM and then fail.
If you run into this situation, you may have to build your image on a device with higher hardware specifications.
Date/Time |
Type of Message |
Module |
Message |
---|---|---|---|
2009-04-23 17:08:03 |
Error |
CBS |
Failed to perform operation. [HRESULT = 0x8007000e - E_OUTOFMEMORY] |
2009-04-23 17:08:03 |
Info |
CBS |
Session: 1340_3783312 finalized. Reboot required: no [HRESULT = 0x8007000e - E_OUTOFMEMORY] |
2009-04-23 17:08:03 |
Error |
DISM |
DISM Package Manager: PID=1340 Failed finalizing changes. - CDISMPackageManager::Internal_Finalize(hr:0x8007000e) |
Additional Help
These errors were relatively simple to diagnose. Over the lifetime of our product, you may experience errors where it is more difficult to determine the problem. In such a case, there are several areas you can look to for support.
Note
When requesting assistance in diagnosing errors, it is helpful to attach the whole Panther folder to any forum post or bug report you create. The logs are critical in helping diagnose Image Builder Wizard issues. If you forget to attach them, the first response you will usually receive is "Can you send us the logs, please?"
- The Windows Embedded MSDN Forums are a great source of support. Not only can you receive help from your peers, embedded experts and Microsoft MVPs, but the Standard 7 product team also directly monitors these forums and helps out as much as possible. For questions related to Image Builder Wizard and Image Configuration Editor, the "Standard 7: Tools" sub-forum is the best place to ask. You can also access these forums from Image Configuration Editor by selecting Ask a Question from the Community menu.
- You can work with your distributor for technical support.
- You can send feedback to Microsoft using Image Configuration Editor by selecting Send Feedback from the Community menu.
Conclusion
Log files are essential resources when examining installation failures for Standard 7. You should always check the log files when you have an installation failure as a first step to diagnosing the failure.