Error 0x00f0818 or 0x800b0100 installing Windows Server 2008 R2 SP1

As the guy behing WorkingHardInIT blog pointed out here, there are people experiencing issues when installing Service Pack 1 on Windows 2008 R2 (or Windows 7) related to missing or corrupted files in the WinSXS\Manifests or Servicing\Packages folders. The related error code is 0x00f0818, but from personal experience I can say may also apply when Windows Update produces error code 0x800b0100.

The missing or corrupted files can be viewed by the System-Update-Readiness-Tool which will generate logfiles at %SystemRoot%\Logs\CBS. For example, a failing SP1 installation might produce the following CheckSUR.log (excerpt):

Checking Package Manifests and Catalogs
(f)    CBS MUM Corrupt    0x800F0900    servicing\Packages\Package_1_for_KB2416471~31bf3856ad364e35~amd64~~6.1.1.0.mum        Line 1:
(f)    CBS Catalog Corrupt    0x800B0100    servicing\Packages\Package_1_for_KB2416471~31bf3856ad364e35~amd64~~6.1.1.0.cat
..
Checking Component Store
(f)    CSI Manifest All Zeros    0x00000000    winsxs\Manifests\amd64_wpf-presentationhostdll_31bf3856ad364e35_6.1.7600.16542_none_cc28a17e399280f3.manifest    amd64_wpf-presentationhostdll_31bf3856ad364e35_6.1.7600.16542_none_cc28a17e399280f3
..

The blog mentioned gives a nice writeup on how to solve this issue by (temporarily) fixing ACLs and then replacing the files mentioned in CheckSUR.log by copying them off a second – identical – installation. But this may get clumsy when the section “Unavailable repair files” mentions a lot of Manifests and Packages, and prone to error with these long filenames.

Fortunately, we can automate this process a bit as I’ll describe below. Before doing this, follow the steps contained in the mentioned blog to set up permissions correctly (don’t forget to reverse changes afterwards). Note that in this procedure I’m going to use a drive letter X: for storing the repair files.

First, copy the CheckSUR.log to a file named files.txt. Edit files.txt and remove the line “Unavailable repair files:” and everything before that. Save the file.

Then, open an command prompt on the system we’re going to copy these files off and enter the following:
for /f %f in (files.txt) do @copy %SystemRoot%\%f X:\%f /y

Next, on the system with issues, open an elevated command prompt and enter the following to make backup copies of the corrupt files:
for /f %f in (files) do @move %SystemRoot%\%f %SystemRoot%\%f.bak /y

Finally, enter the following command to replace the missing or corrupt files:
for /f %f in (files) do @copy X:\%f %SystemRoot%\%f /y

Of course, this procedure can be adjusted to your liking; you could for example copy the repair files directly off another system using the system share.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s