Windows Systemstartreparatur

Einleitung

Die hier beschriebenen Befehle und Vorgehensweisen setzen eine umfangreiche Fachkentniss voraus und sollten nur von entsprechenden Personen genutzt werden. Die Benutzung geschieht auf eigene Gefahr und unter Ausschluß jeglicher Haftung. Insbesondere wird darauf hin gewießen, dass durch die hier genannten Befehle ein totaler Datenverlust möglich ist. Ein aktuelles Backup der Systeme sollte wo möglich immer vorhanden sein.

Leider zeigt die Praxis, dass auf IT-Systemen manchmal das Thema Backup schändlich vernachlässigt wird und dann Wiederherstellungsmaßnahmen wie hier beschrieben die einzige Rettung darstellen. Sollte der Leser die hier dargestellten Verfahren nicht vollumfänglich verstehen ist es jedoch sinnvoller professionele Hilfe hinzu zu ziehen.

Einzelne Punkte können hier übersprungen werden, sodass der Leser stets dort einsteigen kann wo es für Ihn und sein Fehlerszenario am sinnvollsten erscheint.

Wenn die Befehle unter Windows PE (bspw. von der Windows DVD) abgesetzt werden empfiehlt es sich zur Beschleunigung zunächst das Powerschema auf High Performance zu setzen:

Begriffsdefinition

Systempartition = Partition auf welcher die Systemstartumgebung (Bootloader) liegt; kann unter BIOS-basierten Systemen identisch mit der Startpartition sein; wird auf EFI-basierten Systemen auch als ESP (EFI System Partition) bezeichnet
Startpartition = Partition auf welcher die Startumgebung (das Windows) liegt
MSR = Microsoft Reserved-Partition; Leere Partition laut Microsofts Partitionsschema vorgeschrieben
Recoverypartition = Partition mit Windows RE (Recovery Environment) für Wiederherstellungsoptionen

Systemart prüfen

Zunächst ist zur prüfen, ob es sich um ein BIOS-basiertes System oder ein UEFI-basiertes System handelt. Bei UEFI-basierten Systemen ist es zwingend erforderlich, dass die Windows Systempartition und die Windows Startpartition auf einer GPT-formartierten Festplatte (mit GUID-Partitionstabelle) liegt. Auf BIOS-basierten Systemen ist die Festplatte MBR-formartiert. Dies sowie auch die Einstellungen im BIOS oder EFI können Anhaltspunkt über die Systemart geben.

Hinweis: Nur das Vorhandensein von EFI garantiert nicht, dass das System auch als UEFI-basiertes System angelegt ist. Im Legacy Mode kann trotzdem ein BIOS-basiertes System gebootet werden.

Systempartition reparieren

Seit Windows 7 unterhält Windows in der Regel eine ca. 100 MB große Systempartition welche den Bootloader enthält. In seltenen Fällen kann auf BIOS-basierten Systemen diese Partition entfallen sein und liegt dann auf einer anderen Partition; dann muss der Laufwerksbuchstabe selbst ermittelt werden. Um die Systempartition und damit auch den Bootloader zu reparieren muss die separate Systempartition zuerst mit einem Laufwerksbuchstaben ausgestattet werden um dann darauf zugreifen zu können:

Der Laufwerksbuchstabe kann (und sollte auch unbedingt) später (ggf. in Windows) wieder entfernt werden.

Systempartition als aktiv markieren (nur BIOS-basierte Systeme mit MBR)

Der Befehl active sorgt dafür, dass die Partition als Startpartition in der Partitionstabelle markiert wird und ist nur für BIOS-basierte Systeme, nicht für UEFI-basierte Systeme relevant.

Systempartition erstellen

Sollte eine Systempartition komplett fehlen kann sie aus freiem Speicherplatz erstellt werden. Achtung: Es muss genügend freier, nicht zugewiesener Speicherplatz vorhanden sein! Ggf. ist dieser über andere Tools und Mechanismen zuerst zu schaffen.

Laut Microsofts Partitionslayout soll die Systempartition stets zu Beginn der Festplatte angelegt werden. Hinter ihr existiert nur auf UEFI-basierten Systemen eine 16 MB große MSR (Microsoft Reserved-Partition) ohne Inhalt. Es folgt dann die Startpartition (ugs.: Windows Partition). Am Ende der Festplatte soll dann die Recoverypartition angelegt sein.

Die Partitionsgröße der Systempartition beträgt mindestens 100 MB (Achtung: auf 4K Laufwerken mindestens 256 MB; auf 4K Laufwerken mit Advanced Format 512e-Erweiterung allerdings wieder nur mindestens 100 MB). Es spricht nichts dagegen die Systempartition größer anzulegen ist aber eigentlich unnötige Verschwendung von Speicherplatz.

UEFI-basierte Systeme

Die EFI-Systempartition (auch ESP genannt) ist vom MBR Partitionstyp 0xEF00  und hat den GPT Partitionstyp C12A7328-F81F-11D2-BA4B-00A0C93EC93B. Sie wird wie folgt erstellt:

Die Mindestgröße der ESP beträgt 100 MB (Achtung: auf 4K Laufwerken ohne Advanced Format 512e-Erweiterung 256 MB).
Auf bereits bestehenden Systemen muss ggf. über den Parameter offset= der Punkt angegeben werden (in Kilobyte) an welchem die Partition erstellt werden soll.

Auf UEFI-basierten Systemen muss auch geprüft werden ob die MSR (GPT Partitionstyp: E3C9E316-0B5C-4DB8-817D-F92DF00215AE ) existiert und ggf. erstellt werden:

Die Mindestgröße der MSR beträgt 16 MB.
Auf bereits bestehenden Systemen muss ggf. über den Parameter offset= der Punkt angegeben werden (in Kilobyte) an welchem die Partition erstellt werden soll.

BIOS-basierte Systeme

Die Mindestgröße der Systempartition beträgt 100 MB (Achtung: auf 4K Laufwerken ohne Advanced Format 512e-Erweiterung 256 MB).
Auf bereits bestehenden Systemen muss ggf. über den Parameter offset= der Punkt angegeben werden (in Kilobyte) an welchem die Partition erstellt werden soll.

Die Systempartition muss anschließend formatiert und befüllt werden. Dies wird im übernächsten Abschnitt erläutert.

Komplettes Partitionsschema erstellen

Im Falle einer kompletten Neuinstallation ist ein sauberes Partitionsschema neu zu erstellen. Dies sieht wie folgt aus:

UEFI-basierte Systeme

BIOS-basierte Systeme

Systempartition bereinigen

Um den Bootloader komplett zu löschen und neu anzulegen muss die Systempartition wie folgt formartiert werden:

Es können ohne Probleme beide Verzeichnise (BIOS-basiert und UEFI-basiert) angelegt werden.

MBR neu schreiben / Startsektor neu schreiben (nur BIOS-basierte Systeme mit MBR)

Nun kann ein neuer Startsektor in die Systempartition sowie ein neuer MBR auf die Festplatte geschrieben werden:

Diese Vorgehensweise ist nur relevant für BIOS-basierte Systeme. UEFI-basierte Systeme verwenden eine andere Art der Erkennung des Bootloaders (siehe nächster Abschnitt). Es schadet jedoch nicht die BIOS-relevanten Befehele trotzdem zu setzen. Die Tools erkennen, welches Partitionierungsschema vorliegt (MBR oder GPT).

Startumgebung neu anlegen

Jetzt kann die Startumgebung neu erzeugt werden. Hierzu kopiert das Tool bcdboot die nötigen Startumgebungsdateien aus einem bereits installierten Windows Image.

Auf UEFI-basierten System fügt bcdboot im NVRAM automatisch einen Firmwareeintrag hinzu, um auf den Windows-Start-Manager zu zeigen. Standardmäßig wird dieser Eintrag als das erste Element in der Startliste platziert.

Der Pfad C:\Windows beschreit das Windows Image aus welchem die Startumgebungsdateien extrahiert werden.
Der Parameter /l beschreibt die Gebietsschemaeinstellung (Sprache) der Startumgebung
Der Patameter /s gibt den Laufwerksbuchstaben der Systempartition an
Der Parameter /f steuert den Firmwaretyp. Durch den Parameter ALL werden auf der Systempartition die nötigen Dateien für BIOS-basierte und UEFI-basierte Systeme angelegt. Er kann durch die Parameter UEFI oder BIOS ersetzt werden.

Für UEFI-basierte Systeme wird der Pfad \Efi\Microsoft\Boot auf der Systempartition erstellt und die nötigen Startumgebungsdateien dorthin kopiert.
Für BIOS-basierte Systeme wird der Pfad \Boot auf der Systempartition erstellet und alle nötigen Startumgebungsdateien dorthin kopiert.

Es können ohne Probleme beide Startumgebungsdateien (BIOS-basiert und UEFI-basiert) kopiert werden.

Windows Image prüfen und wiederherstellen

Ab Windows Server 2012 und Windows 8 muss zunächst eine Image-Reparatur erfolgen:

Der Parameter /Image:C:\ gibt den Root Pfad zum zu prüfenden Betriebssystem-Image an. Er kann durch den Parameter /Online ersetzt werden. /Online prüft das aktuell geladene Image. Im Fall eines geladenen Windows PE (bspw. von der Windows DVD) handelt es sich hierbei um das Image des Windows PE. Der Parameter /Online macht also nur bei Ausführung der Befehle in einem gebooteten Windows Sinn.

Nur wenn die Ausgabe repairable lautet kann eine Reparatur versucht werden. Im Falle der Ausgabe healthy kann direkt ein Integritätsscan der Systemdateien durchgeführt werden (siehe nächster Abschnitt). Lautet die Ausgabe non-repairable ist das Image leider gänzlich unbrauchbar.

Für den Parameter /Image bzw. /Online gilt wie oben beschrieben.
Der Parameter /ScratchDir beschreibt das temporäre Verzeichnis zum entpacken des unter Source beschriebenen WIM Images und ggf. der Dateien aus dem Betriebssystem-Image. Unter Windows PE würde ohne Angabe dieses Parameters die (zu kleine) RAM-Disk verwendet werden. Das hier angegebene Verzeichnis muss existieren und sollte genug Speicher (>= 16 GiB) aufweisen.
Der Parameter /LimitAccess verhindert die Nutzung von Windows Update und sollte mit dem Parameter /Source verwendet werden, da Windows Update die Standardquelle ist.
Der Parameter /Source beschreibt von woher die Reparatur durchgeführt werden soll. Dies kann eine der folgenden Quellen sein:

  • Der Pfad zu einem bereits vorher händisch gemountetem WIM file (bspw.: C:\mount\Windows)
  • Eine laufende Windows-Installation (bspw.: C:\Windows)
  • Ein Windows side-by-side Ordner von einem Installationsmedium (bspw.: Z:\sources\SxS)
  • Ein WIM file unter Angabe des editionsspezifischen Indexes und dem Präfix WIM: (bspw.: WIM: Z:\sources\install.wim:1)

Für alle Pfade können auch Netzwerkfreigaben in SMB-Schreibweise verwendet werden.

Um den korrekten Index eines WIM files ermitteln zu können müssen dessen enthaltene Editionen zuvor wie folgt angezeigt werden:

Windows Systemdateien auf Integrität prüfen und wiederherstellen

Ab Windows Server 2012 und Windows 8 muss zunächst eine Prüfung und ggf. Reparatur des Windows Image erfolgen. Bei den Vorgängerbetriebssystemen (Windows 7, Windows Vista, Windows Server 2008 R2 oder Windows Server 2008) kann direkt hier fortgefahren werden.

Die Integritätsprüfung der Systemdateien wird wie folgt gestartet:

Mit dem Befehl sfc /scannow werden alle geschützten Systemdateien überprüft und die beschädigten Dateien durch eine zwischengespeicherte Kopie ersetzt, die sich in einem komprimierten Ordner unter %WinDir%\System32\dllcache befindet.

Da wir unter Windows PE wie oben beschrieben wieder nur die Systemdateien des Windows PE prüfen würden müssen wir auch hier den korrekten Pfad zum Betriebssystem angeben.

Der Parameter /OffBootDir entspricht dem Pfad zum Datenträger wo sich die Bootdateien befinden. Der Parameter /OffWinDir entspricht dem Root Pfad zum Windows Ordner.

Das Ergebnis der Integritätsprüfung kann im Gutfall eines der folgenden sein:

  • Der Windows-Ressourcenschutz hat keine Integritätsverletzungen gefunden.
  • Der Windows-Ressourcenschutz hat beschädigte Dateien gefunden und erfolgreich repariert.

Im Schlechtfall wird es einer der folgenden sein:

  • Der Windows-Ressourcenschutz konnte den angeforderten Vorgang nicht ausführen.
  • Der Windows-Ressourcenschutz hat beschädigte Dateien gefunden und konnte einige der Dateien nicht reparieren.

In ersterem Fall müssen wir händisch sicherstellen, dass die Ordner PendingDeletes und PendingRenames unter dem Ordner %WinDir%\WinSxS\Temp vorhanden sind und es danach erneut versuchen.

Im zweiten Fall müssen die beschädigten Dateien händisch repariert werden. Welche es sind findet sich in diesem Log: %WinDir%\Logs\CBS\CBS.log

Windows Systemdateien manuell reparieren

Wenn durch das Tool sfc  Dateien nicht repariert werden können ist eine manuelle Reparatur nötig. Die entsprechenden Dateien können aus dem Log %WinDir%\Logs\CBS\CBS.log wie folgt extrahiert werden:

Ein Eintrag in der nun erstellten Datei sfcdetails.txt sieht wie folgt aus:

Es ist darauf zu achten, dass die Einträge das korrekte Datum aufweisen.

Die fehlerhaften Dateien müssen aus einem bestehenden Windows gleicher Versionierung und Edition kopiert werden. Anschließend können die Dateien wie folgt überschrieben werden:

Windows RE / Recovery Partition prüfen

Recovery Partition erstellen

Die Windows Recovey Partition muss zunächst existieren. Nach Microsoft Partitionierungsschema soll die Recovery Partition am Ende der Partitionstabelle als letzte Partition angelegt sein. Existiert sie nicht wird sie wie folgt angelegt:

BIOS-basierte Systeme

UEFI-basierte Systeme

Recovery Partition vorbereiten

Anschließend muss die Partition temporär mit einem Laufwerksbuchstaben ausgestattet werden:

Windows RE erstellen und bekannt machen

Nun kann das Windows RE auf die Recovery Partition kopiert werden:

Der Pfad kann auch auf C:\Recovery\winre.wim lauten sofern keine Recovery Partition bei der ursprünglichen Betriebssysteminstallation erstellt wurde. Die Kopie muss mir xcopy /h erfolgen um das Hidden Attribute nicht zu kopieren.

Wenn das winre.wim komplett fehlt muss es aus einem Installations Image extrahiert werden. Dazu benötigt man ein Installationsmedium (konkret die install.wim):

Das nun erstellte Windows RE muss dem Betriebssystem (dem tatsächlichen Windows) bekannt gemacht werden:

Der Parameter /path beschreibt den Pfad in welchem das winre.wim liegt
Der Parameter /target beschreibt das Windowsverzeichnis des Betriebsssystems dem das Windows RE bekannt gemacht werden soll

Um zu verifizieren ob der Eintrag erfolgreich war kann er wie folgt angezeigt werden:

Die Ausgabe sollte in etwa so aussehen:

Bootloadereintrag prüfen und erstellen

Im Bootloader sollte auch ein Eintrag für das Windows RE vorhanden sein welcher auf die Recovery Partition zeigt. Der Eintrag kann mit dem Befehl  bcdedit /enum osloader  geprüft werden. Die Ausgabe sollte in etwa so aussehen:

Der Parameter identifier sollte sich gemerkt werden da er gleich noch benötigt wird.

Bootloaderreferenz prüfen und erstellen

Das Betriebssystem selbst muss im Bootloader eine Referenz auf den Bootloadereintrag für das Windows RE haben. Die Referenz GUID kann wie folgt ermittelt werden:

Aus der Ausgabe kann die Referenz GUID ausgelsen werden:

Die unter dem Parameter recoverysequence angegebene GUID muss dem Paraeter identifier des Windows RE wie zuvor ermittelt entsprechen. Tut es das nicht kann die recoverysequence durch die korrekte GUID überschrieben werden:

Windows RE reaktivieren

Wenn alle Einstellungen bereits von vornherein korrekt waren. das Windows RE aber nicht startet so hilft es manchmal das RE einfach neu zu aktivieren:

Links

https://de.wikipedia.org/wiki/Bootmgr

https://msdn.microsoft.com/de-de/library/windows/hardware/dn898490(v=vs.85).aspx

https://msdn.microsoft.com/de-de/library/windows/hardware/dn898493(v=vs.85).aspx

https://support.microsoft.com/de-de/help/300415.

https://msdn.microsoft.com/de-de/library/windows/hardware/dn898510(v=vs.85).aspx

https://support.microsoft.com/de-de/help/929833/use-the-system-file-checker-tool-to-repair-missing-or-corrupted-system

Schreibe einen Kommentar