Windows Server 2008 - Impossibile installare il Service Pack 2

Può capitare che la Service Pack 2 per Windows Server 2008 fallisca la sua installazione per via di una corruzione del deposito degli update, o per la mancanza di alcuni file ritenuti essenziali ai fini dell’installazione. Un effetto collaterale di questa corruzione può essere rappresentato dall’impossibilità di aprire e gesitre i ruoli nella finestra “Server Manager”.

La risoluzione di questa situazione, è abbastanza semplice, si tratta di individuare I file corrotti e sostituirli o eventualmente aggiungerli al deposito nel caso mancassero.

I passi da seguire per la risoluzione sono I seguenti:

  1. Individuare I file oggetto del problema con “System Update Readiness Tool
  2. Recuperare I file originali
  3. Copiare i file nel deposito degli update

Vediamo in maggiore dettaglio ogni passo.

Individuare

Il tool da utilizzare è scaricabile a questo indirizzo http://support.microsoft.com/kb/947821

Una volta scaricato ed eseguito, esso produrrà un file di log (CheckSUR.log) all’interno della cartella “ %SYSTEMROOT%\Logs\CBS\ ”; questo log è di primaria importanza per il resto della soluzione in quanto contiene l’elenco dei file mancanti e/o corrotti, che dovranno essere sostituiti nei prossimi passi.

Un esempio del log prodotto è il seguente:

=================================
Checking System Update Readiness.
Binary Version 6.0.6001.22375
Package Version 5.0
2009-10-01 11:24
Checking Deployment Packages
Checking Package Manifests and catalogs.
Checking package watchlist.
Checking component watchlist.
Checking packages.
(f) CBS MUM Missing 0x00000002 servicing\packages\Package_80_for_KB967723~31bf3856ad364e35~amd64~~6.0.1.7.mum
(f) CBS MUM Missing 0x00000002 servicing\packages\Package_for_KB967723_server_0~31bf3856ad364e35~amd64~~6.0.1.7.mum
(f) CBS MUM Missing 0x00000002 servicing\packages\Package_for_KB967723_server~31bf3856ad364e35~amd64~~6.0.1.7.mum
(f) CBS MUM Missing 0x00000002 servicing\packages\Package_for_KB967723~31bf3856ad364e35~amd64~~6.0.1.7.mum
Checking component store
Summary:
Seconds executed: 401
Found 4 errors
CBS MUM Missing Total Count: 4
=================================

Recuperare

Il nome del file che sta causando il problema, contiene il numero della KB a cui appartiene, quindi è sufficiente scaricare l’aggiornamento corrispondente per avere una copia corretta del file. Rinominando l’eseguibile da .msu a .cab è possibile accedere ai file mum senza dover installare il pacchetto (installazione che molto probabilmente fallirebbe).

Ogni file .mum, può avere associato un file di catalogo ( .cat) con lo stesso nome; sebbene questi tipi di file non siano menzionati nel log del passo precedente, essi vanno sempre copiati assieme ai file .mum.

Bisogna eseguire l’operazione per ogni KB elencata all’interno del log precedente, in modo che al termine di questo passaggio si disponga di tutti I file .mum e .cat necessari per procedere con il punto successivo

Copiare

Questa è la parte che richiede un pò più di lavoro, ma è comunque abbastanza semplice. Si tratta di copiare tutti I file raccolti all’interno della cartella %windir%\servicing\package sostituendo quelli eventualmente già presenti.

Questa cartella di sistema è però bloccata e l’utente, seppur amministratore, non ha i diritti di scrittura, per poter procedere bisogna prendere l’ownership di tale cartella. Una volta presa l’ownership è possibile aggiungere l’utente corrente ed assegnargli i permessi necessari per la copia dei file al suo interno.

Copiati i file, rieseguire nuovamente il punto 1 ed ispezionare il file di log, se nel log non risultano errori è possibile procedere con l’installazione della Service Pack 2.

Nel caso invece in cui compaiano altri file mancanti (possbili nuove dipendenze) ripetere tutta la procedura dall’inizio, fino a che nel log del tool di Readiness verrano riportati errori.

Una nota finale, per non incorrere in futuri problemi legati all’installazione degli aggiornamenti, ricordatevi di riassegnare l’ownership della cartella %windir%\servicing\package al servizio di update (utente NT SERVICE\TrustedInstaller).

 

Gianluca Bertelli
Support Engineer
Microsoft Enterprise Platform Support