In Part 1 of this series we figured out where the logs are located. In Part 2, we learned how IBW works and what messages get written to which log files. In this final section, we’ll dig deep into the logs to determine the cause of our problem and how to fix it.
Now that we have some way of viewing the logs, we can start to figure out what went wrong.
When you open up the logs, they’ll look something like this:
Because that’s nearly impossible to read as a screenshot, I’ve taken the log and organized it into a nice, pretty table and highlighted the important parts.
From looking at setuperr.log, we can see that we got a few error messages that all point to an error within DISM. DISM messages mean that we should take a look at cbs_unattend.log:
Again, a picture of the log is nearly impossible to read, so here’s the important part in table form:
When you’re scanning for errors, you’ll likely to see the first 2 error messages (shown in the above surrounded by <Ignore these messages> in the cbs_unattend.log. These can be safely ignored.
As you can see, the first real “Error” that’s reported is that the WinEmb-IE-Core.cab file was not found. Looking one message above the error, we can see that DISM is trying to install the file (it’s the “Internet Explorer 8 Engine and Display” package, which I included in my configuration).
For the purposes of this demo, I deleted this package from my Distribution Share, so this error message makes perfect sense. The package isn’t there, DISM needed to install the package, so the DISM operation failed, and thus the entire setup failed.
Now, we can go back and look at the original error message popup that we saw, “Windows Setup failed to install packages or apply component settings while offline servicing the image.” Now that we’ve gone through the logs, this error message makes sense. Setup failed to install a package. The logs say that the WinEmb-IE-Core.cab package is missing, so I should try and figure out why it’s not there, and make sure it is there in the future so that my installation will work.
Now that we’ve solved one mystery failure, let’s take a look at a few other common problems to give you an idea of what to look for:
Shown below, the error message “STATUS_SXS_FILE_HASH_MISMATCH” typically means that the setup media is corrupted. Recreating the IBW media (either re-burning the DVD or re-copying files to a USB drive) generally solves the problem. If that doesn’t fix the problem, your original download could be corrupted, so re-downloading and recreating the setup media may help.
“ERROR_CRC” is another typical file corruption message. The same steps suggested above may help.
“E_OUTOFMEMORY” means that your device has run out of RAM when running setup. This may occur more often on devices that have both low disk space and low RAM capacities or installations to removable media such as USB drives. The reason for this is that IBW attempts to automatically create a pagefile during setup to act as extra memory. Devices with low disk space may not have enough room for both the installation and the pagefile. Pagefiles cannot be created on removable media, so it is possible that your installation will use up all available RAM and then fail.
If you run into this situation, you can use the steps in Punit’s “Offline Build” blog article to build your image on a device with higher hardware specifications.
The errors that we just examined were actually fairly easy to diagnose. Over the lifetime of our product, you may run into errors where you can’t quite figure out what’s going wrong. In such a case, there are several avenues you can look to for support.
Note: Now that you know how to find and copy the logs, attaching the entire Panther folder to any forum post or bug report you create is a very good idea! The logs are critical in helping our team to diagnose IBW issues. If you forget to attach them, usually the first response you’ll receive from us is, “Can you send us the logs please?”
If you have any common error messages that you’re having trouble figuring out or any suggestions for us on how to better handle error conditions, you can also feel free to post a Comment to this blog article.
Thanks for reading!