Windows 7 SP1 installation fails with error 0x800f0818
August 7, 2012 5 Comments
I came across a peculiar problem today trying to install SP1 on a Windows 7 laptop. Whenever I ran the Windows 7 SP1 installer or tried to update to SP1 using Windows Update the installation failed with a cryptic error ‘0x800f0818‘. I tried various things such as running sfc /scannow and installing the Windows 7 System Readiness Tool (64 bit in my case), but neither reported problems.
After a bit of digging I found an entry in the CheckSUR log file found in C:\Windows\Logs\CBS which seemed to be related. In this case a .Net Framework update had failed to install a few times and this particular update was referenced in the log file:
Checking Windows Servicing Packages
Checking Package Manifests and Catalogs (f) CBS MUM Corrupt 0x00000000 servicing\Packages\Package_for_KB979916_RTM~31bf3856ad364e35~amd64~~220.127.116.11.mum Expected file name Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~6.1.7600.16385.mum does not match the actual file name
Checking Package Watchlist
Checking Component Watchlist
Checking Component Store
Summary: Seconds executed: 485 Found 1 errors CBS MUM Corrupt Total count: 1
Unavailable repair files: servicing\packages\Package_for_KB979916_RTM~31bf3856ad364e35~amd64~~18.104.22.168.mum servicing\packages\Package_for_KB979916_RTM~31bf3856ad364e35~amd64~~22.214.171.124.cat
To fix the problem I had to remove entries for the corrupt package from the registry (IMPORTANT: taking a backup first) from:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages
The specific entries are shown below. There are two, the highlighted entry, and the one beneath:
After deleting the two entries I reran Windows Update checking for updates and this package was redownloaded and then installed without issue. After this the service pack 1 installation proceeded without error. You may find that the specific update referenced in your CheckSUR log is different to the one mentioned here, but the method is the same.