I've noticed we've had a couple of calls lately with customers having issues getting SP2 installed for Windows Server 2008. Typically the error seen is:
"You need to install Windows Server Service Pack 1 before continuing. After you install Windows Service Pack 1, restart this installation."
This can occur for a number of reasons, but the three most common are as follows:
- At some point the beta or RC version of the Service Pack was installed and needs to be removed
- Another package hasnt finished installing properly and needs to be finalized.
- The actual servicing stack is corrupted and cannot be repaired.
Normally, its the second reason that is the problem. Looking into most CBS.logs shows the following information (the error code that is typical is in bold):
2009-06-11 13:33:08, Info CBS SPI: Failed opening parent package KB936330~31bf3856ad364e35~amd64~~22.214.171.12400. hr 0x800f0805
2009-06-11 13:33:08, Info CBS Mark store corruption flag because of package: Package_93_for_KB948465~31bf3856ad364e35~amd64~~126.96.36.19905. hr: 0x800b0100
2009-06-11 13:33:08, Error CBS SPI: (CSPICbsClient::OpenPackage:227)Failed to open package with identity Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~6.0.6001.18000 hr=0x800b0100
2009-06-11 13:33:08, Info CBS SPI: Failed opening parent package Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~6.0.6001.18000. hr 0x800b0100
2009-06-11 13:33:08, Error CBS SPI: (CSPICbsClient::OpenPackage:227)Failed to open package with identity Microsoft-Windows-ServerCore-Package~31bf3856ad364e35~amd64~~6.0.6001.18000 hr=0x800f0805
2009-06-11 13:33:08, Info CBS SPI: Failed opening parent package Microsoft-Windows-ServerCore-Package~31bf3856ad364e35~amd64~~6.0.6001.18000. hr 0x800f0805
2009-06-11 13:33:08, Error CBS SPI: (CSPCInstallTask::ApplicabilityScan:692)No parents for SP package found. A release version of SP1 must be installed or scheduled for installation hr=0x800f0a05
If you run CheckSUR against these machines (KB947821), you will notice that there is typically one update that has missing manifests (which looks similar to the log entries below):
Checking component watchlist.
(f) CBS MUM Missing 0x00000002 servicing\packages\Package_for_KB955430_server_0~31bf3856ad364e35~amd64~~188.8.131.5205.mum
(f) CBS MUM Missing 0x00000002 servicing\packages\Package_for_KB955430_server~31bf3856ad364e35~amd64~~184.108.40.20605.mum
(f) CBS MUM Missing 0x00000002 servicing\packages\Package_for_KB955430~31bf3856ad364e35~amd64~~220.127.116.1105.mum
The solution for this is to copy these .mum files from a machine that is working and has SP2 installed and copy them over to the installation with the problem. Re-run CheckSUR to make sure that the logs are clear and then re-run the SP2 installer.
If the issue is truly store corruption, you will see similar log entries to the following. These cannot be fixed and require a machine to be restored or an in-place upgrade to be performed to recover the component store.
2009-07-24 10:01:28, Error CSI 00000099 (F) STATUS_SXS_COMPONENT_STORE_CORRUPT #2282550# from CCSDirectTransaction::PerformChangeAnalysis(...)[gle=0xd015001a]
2009-07-24 10:01:28, Error CSI 0000009a (F) STATUS_SXS_COMPONENT_STORE_CORRUPT #2282549# from CCSDirectTransaction::PrepareForCommit(...)[gle=0xd015001a]
2009-07-24 10:01:28, Error CSI 0000009b (F) STATUS_SXS_COMPONENT_STORE_CORRUPT #2282548# from CCSDirectTransaction::GenerateComponentChangeList(...)[gle=0xd015001a]
2009-07-24 10:01:28, Error CSI 0000009c (F) STATUS_SXS_COMPONENT_STORE_CORRUPT #2282547# from Windows::COM::CPendingTransaction::ExtractInformationFromRtlTransaction(...)[gle=0xd015001a]
2009-07-24 10:01:28, Error CSI 0000009d (F) HRESULT_FROM_WIN32(14098) #1144052# from Windows::COM::CPendingTransaction::IStorePendingTransaction_Analyze(...)[gle=0x80073712]