Win 7: Defekte Packages-Dateien reparieren

Beim Installieren des Service Pack 1 stoßen viele Anwender auf das Problem, dass der Vorgang wegen kaputter Paketdateien hängen bleibt. Der Beitrag skizziert, wie man eventuell beschädigte Dateien ersetzen kann.


Anzeige

Das Problem

Die Problembeschreibung ist relativ simpel: Beim Prüfen des Systems auf beschädigte Systemdateien [1] meldet sfc, dass nicht alle Dateien repariert werden konnten. Weiterhin wird ggf. aufgelistet, welche Dateien "putt" sind. Auch bei der Installation des SP1 kann der Vorgang an defekten Dateien scheitern. Die Informationen, finden sich in einer Protokolldaten CBS.log im Windows-Ordner \logs\cbs [2]. Diese log-Datei lässt sich in einem Editor laden und analysieren. Zusätzlich kann der Ordner beim SP1 auch noch .cab-Dateien enthalten, in die weitere log-Dateien abgelegt sind. Im dümmsten Fall muss man eine Menge Dateien anfassen, um die genaue Ursache zu finden.

Was steckt dahinter?

Hintergrund ist, dass Windows 7 eine Kopie der benötigten Pakete im Ordner %windir%\servicing\Packages vorhält. Die Systemdateiprüfung (sfc) kann daher eine Systemprüfung gegen den Inhalt des Packages-Ordners durchführen. Beschädigte Dateien werden dann einfach aus diesem Ordner in die Zielverzeichnisse kopiert. In's Trudel gerät die Sache aber, wenn der Hash-Code der Archivdateien im Packages-Ordners nicht mehr stimmt oder wenn dort bereits Dateien fehlen.


Anzeige

Was kann ich tun?

In einfach gelagerten Fällen, wo vielleicht ein oder zwei Dateien kaputt sind bzw. fehlen, hat man eine Chance, diese manuell zu ersetzen. Hierzu benötigt man die Windows 7 Setup-DVD, die man im Windows Explorer inspiziert und dann in den Ordner \sources wechselt. In diesem Ordner findet sich die Datei install.wim (.WIM steht für Windows Image, also das Installationsabbild, welches beim Setup auf die Zielpartition kopiert wird).

install.wim entpacken

Die install.wim lässt sich mit einem Tool wie 7-ZIP entpacken. Im Ordner \1\Windows\servicing\Packages\ finden sich die RTM-Pakete. Nun sucht man die auf dem kaputten System fehlende bzw. beschädigte Datei im Installationsabbild, kopiert diese in einen lokalen Ordner und versucht diese im nächsten Schritt in den Zielordner %windir%\servicing\Packages der Windows-Installation zu übertragen. Dazu sind auf jeden Fall administrative Berechtigungen erforderlich. Falls das nicht klappt, ist der Rechner mit einer Windows PE-Umgebung (z. B. per Setup-DVD) zu booten. Anschließend kann der Kopiervorgang erfolgen.

"Double-Problem" gibt's leider auch …

Gleich ein doppeltes Problem tritt auf, wenn die defekten Dateien nicht aus der RTM von Windows 7 stammen, sondern über Updates auf das System gelangten. Dann stehen die Urdateien nicht auf der Windows 7 Setup-DVD zur Verfügung.

Unter [3] ist ein solcher Fall skizziert, wo ein .NET Framework SP1-Update eine Menge Dateien ausgetauscht hat. An Hand der Dateinamen der defekten Dateien lässt sich erahnen, dass diese aus einem Update KB979900 stammen. Sucht man nach KB979900, findet sich da ein Service Pack 1-Update für NET-Framework 3.5.1 (http://support.microsoft.com/kb/979900). Bei anderen Dateien ist eine ähnliche Strategie zu bemühen, um das Update oder die Quelle zu identifizieren. Zum Restaurieren empfiehlt sich folgende Strategien einzusetzen:

  • Ist das .NET Framework 3.5.1 sowie das SP1-Update am Problem beteiligt, können die Ansätze aus [4] probiert werden. Danach könnte probiert werden, das SP1 für das NET Framework neu zu installieren.
  • Wird ein Update oder Hotfix als Problemquelle identifiziert, kann man schauen, ob dieses im Update-Verlauf zu finden ist. Dann sollte man das Update deinstallieren lassen. Mit etwas Glück werden die defekten Pakete entfernt und das Update lässt sich erneut anfordern.

Für ganz Pertinente besteht natürlich noch die Möglichkeit, Windows 7 in einer separaten Partition zu installieren (oder ein anderes noch funktionierendes System zu inspizieren) und zu schauen, ob die beschädigten Dateien im o. g. Packages-Ordner enthalten sind. Dann ließen sich die Dateien auf den "kranken" Rechner übertragen – anschließend heißt es beten, dass es akzeptiert wird.

Falls das nicht hinhaut, wäre noch das gerne zitierte Inplace Upgrade [5] durchführen und zu hoffen, dass es das System "heile macht". Vielleicht hilft es dem Einen oder Anderen.

Nachtrag: Kaputte Windows Update-Pakete reparieren

Im Internet und speziell im Microsoft Answers-Forum tauchen immer wieder Anwender auf, bei denen die SP1-Installation oder das Windows Update auf Kreuz fliegt. Wertet man die CBS.log aus, stellt sich heraus, dass ein CBS_E_XML_PARSER_FAILURE-Fehler auftritt [6], d. h. der CBS-Store mit den Update kann nicht ausgewertet werden. Sofern die Auswertung der CBS.log defekte Dateien ergibt, die mit einem Windows Update zusammenhängen, gibt es ein Problem. Das Update lässt sich i. d. R. weder neu installieren noch entfernen. Was man ggf. in dieser Situation noch tun kann, habe ich unter [7] besprochen.

Links:
1: System auf beschädigte Systemdateien prüfen
2: SP1-Installation hängt, Error C0000034/C000009A
3: Microsoft Forendiskussion
4: .NET Framework macht Probleme
5: Windows 7 Inplace Upgrade
6: Microsoft-Forendiskussion zu CBS_E_XML_PARSER_FAILURE
7: CBS-Store durch Updates defekt, wie reparieren?


Anzeige

Dieser Beitrag wurde unter Installation, Problemlösung abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros). Kommentare abseits des Themas bitte unter Diskussion.

Du findest den Blog gut, hast aber Werbung geblockt? Du kannst diesen Blog auch durch eine Spende unterstützen.