Schluss mit XP-Fehlstarts

Systemstart verstehen und beeinflussen

Praxis & Tipps | Praxis

Meist läuft XP prima, aber mitunter mischen Würmer und Viren das System auf, schießt ein Treiber-Update quer oder bringt eine neue Software das System aus dem Gleichgewicht. Dann ist guter Rat gar nicht mal teuer.

Trotz aller intensiven Hege und Pflege, die man einer Installation von Windows XP angedeihen lässt, stellen sich früher oder später Zipperlein ein. Mal rutscht die Task-Leiste ohne erkennbaren Grund ein paar Pixel zusammen, mal lahmt der Systemstart ohne äußeren Anlass, mal bockt eine Anwendung oder das System zeigt einem schon beim Start die blaue Karte: „ntoskrnl.exe nicht gefunden“.

Schön, wenn man eine Sicherung auf wirklich aktuellem Stand hat, die sich schnell zurückspielen lässt. Dann ist das System zwar erst mal wieder benutzbar, doch das zugrunde liegende Problem weiterhin unbekannt und ungelöst.

Wir knöpfen uns deshalb XP von seinen Anfängen beim Booten über den täglichen Betrieb bis zum klinischen Tod, dem gefürchteten Blue Screen, vor. Damit Sie Windows-Problemen nie wieder einfach nur ausgeliefert sind, sondern sich an die Ferse eines Fehlers heften und ihn ohne zeitraubende Neuinstallation beheben können.

Dieser erste Artikel hilft Ihnen, den Startvorgang zu verstehen und dort gegebenenfalls selbst Hand anzulegen, um Fehlerursachen dauerhaft abzustellen. Im folgenden Beitrag lernen Sie das Einmaleins der Spurensuche und können sich so an Problemquellen herantasten. Der letzte Artikel schließlich hilft, die Ursachen von Fehlern einzugrenzen, die XP als Anlass für einen Blue Screen nimmt.

Den Startvorgang von Windows XP hat Microsoft hinter einem grafischen Bildschirm versteckt. Der Start beginnt wie der jedes PC-Betriebssystems mit dem Laden und Starten von Partitions- (MBR) und Boot-Sektor der aktiven Partition. Erst im Boot-Sektor steckt XP-eigener Code. Er bringt den für den Start des Betriebssystems verantwortlichen Loader in den Speicher und führt ihn aus. Der Loader steckt in der Datei „ntldr“. Fehlt sie, kann XP auf einem normalen x86-PC nicht starten.

Der Master-Boot-Record (MBR), also der Sektor mit der Partitionstabelle, hat nur im Extremfall Einfluss auf den XP-Start: Wenn ein arg altes System, etwa ein DOS aus der PC-Steinzeit oder ein älterer Boot-Manager, sich dort verewigt hat, scheitert unter Umständen der Start von einer größeren Festplatte, wenn die XP-Partition jenseits der einschlägigen Grenzen liegt (8 oder 128 GByte).

Bei korrektem MBR startet normalerweise der NT-Loader (ntldr) und erledigt eine ganze Reihe von Aufgaben. Er schaltet das System in den Protected Mode und lädt einen enthaltenen minimalen Dateisystemtreiber für den Zugriff auf FAT- oder NTFS-Partitionen. Anschließend wertet er die boot.ini-Datei aus und findet so heraus, welche Systeme überhaupt installiert und gegebenenfalls in einer Auswahl anzuzeigen sind, etwa eine zweite Installation von XP oder eine ältere Windows-Fassung.

Ein Malheur mit den Boot-Sektoren lässt sich leicht beheben. Die Wiederherstellungskonsole, die Sie von der Original-XP-CD starten können, ist das Mittel der Wahl: Sie kann den MBR (fixmbr) und den Boot-Sektor (fixboot) reparieren. Außerdem kann sie nach vorhandenen Windows-Installationen suchen (bootcfg /rebuild) und so eine verloren gegangene oder durch Umpartitionieren wertlos gewordene boot.ini-Datei restaurieren - der Befehl fragt für jede gefundene Windows-Installation nach, ob sie in die boot.ini-Datei aufzunehmen ist.

Lediglich die Boot-Dateien (ntldr und ntdetect.com) kann die Wiederherstellungskonsole nicht direkt restaurieren. Hier müssen Sie selbst ran und die Dateien aus dem i386-Verzeichnis der CD auf die Festplatte kopieren. Das ist zum Beispiel dann nötig, wenn Sie nach Windows XP noch 2000 installieren; die Installation ersetzt die Datei ntldr durch eine Version, die XP noch nicht zu starten vermag.

Die Startdateien (boot.ini, ntldr und ntdetect.com) liegen stets auf der ersten primären Partition im Hauptverzeichnis, gemeinhin also Laufwerk C:. Sie sind durch Dateiattribute vor neugierigen Blicken geschützt. Welche tatsächlich verloren sind, bemerkt man also erst, wenn man bei einem Blick auf C: Befehle zur Anzeige verborgener Dateien verwendet, etwa dir /ah.

In seltenen Fällen spielt eine weitere Datei eine Rolle. Sie heißt ntbootdd.sys und enthält den Treiber, den das System braucht, um auf die Festplatte(n) ohne BIOS-Hilfe überhaupt zugreifen zu können. Ob das tatsächlich der Fall ist, verrät ein Blick in die boot.ini-Datei - beginnen die Zeilen im Abschnitt [operating systems] nicht mit „multi(...“, sondern mit „scsi(...“, so ist die Datei nötig; in der Regel handelt es sich um die .sys-Datei des jeweiligen Host-Adapters.

Wenn Sie über den NT-Loader weitere Betriebssysteme starten, etwa Windows 9x/ME oder Linux, so kommen weitere Dateien hinzu: Je Betriebssystem eine 512 Byte große Datei, die den Boot-Sektor des jeweiligen Systems beziehungsweise seiner Partition enthält. Taucht in der boot.ini-Datei ein Eintrag der Art „c:\="Windows 9x" auf, so verweist er auf die Datei bootsect.dos; im Fall anderer Systeme ist auch der Dateiname im Eintrag enthalten, etwa „c:\lilo.bin="Linux"“.

Das Restaurieren der bootsect.dos-Datei ist kompliziert, weil es sich um den Boot-Sektor handelt, den der NT-Loader überschreibt. Im Fall anderer Betriebssysteme ist es in der Regel einfacher. Es genügt, wenn Sie mit einem Diskeditor oder einem vergleichbaren Programm erneut den Boot-Sektor der jeweiligen Partition in eine Datei sichern.

Generell ist es eine gute Idee, alle Startdateien zu sichern - Sie können das auf einer Diskette erledigen: Formatieren Sie unter Windows XP einfach eine Floppy und spielen Sie alle Dateien aus dem Wurzelverzeichnis von Laufwerk C: dort drauf, also ntldr, ntdetect.com, boot.ini und gegebenenfalls ntbootdd.sys sowie etwaige Dateien mit Boot-Sektoren - weil die Dateien versteckt sind, geht das am ein-fachsten über die Kommandozeile und den xcopy-Befehl.

Steckt die Diskette beim nächsten Booten im Laufwerk und taucht es in der Boot-Reihenfolge an früher Stelle auf, läuft der erste Teil des XP-Starts (und der etwaiger anderer Betriebssysteme) von der Floppy. Wenn Sie sich wunschgemäßer Funktion versichert haben, sollten Sie diese für Notfälle in den Schrank zu den Backups packen.

Ist nur ein Windows XP installiert, bekommen Sie die Auswahl des NT-Loaders nicht zu sehen, sondern er beginnt sein Werk direkt: Er lädt eine noch eher rudimentäre Hardware-Erkennung (aus der bereits erwähnten Datei ntdetect.com) und startet sie. Deren Erkenntnisse, in der boot.ini vorgegebene Parameter sowie Daten, die der Loader aus der Registry liest, zum Beispiel zu etwaigen Hardwareprofilen, gibt er an ntoskrnl.exe weiter, also den eigentlichen Betriebssystemkern von XP, 2000 und NT.

Der Loader lädt nicht nur ntoskrnl.exe, sondern auch hal.dll und einige für den Systemstart unverzichtbare Treiber. Welche das sind, steht in der Registry unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet. Dieser Teil der Registrierung entspricht wohl am ehesten dem, was alte DOS-Hasen als config.sys und autoexec.bat oder Unix-Nutzer unter init-Skripten verstehen.

Jeder Eintrag dort im Ast Services beschreibt einen Treiber oder Dienst, den das System kennt. Je Eintrag beschreibt der Wert namens „Start“, wann ein Treiber zu laden ist. In dieser frühen Startphase gilt das für alle, bei denen 0 eingetragen ist, sowie für Dateisystemtreiber, für die der Wert „Type“ in der Registry auf 2 gesetzt ist.

Weitere Werte je Treiber oder Dienst regeln, für wie wichtig das System sie erachtet. Ist „ErrorControl“ auf 1 gesetzt, dann gibt es im Fehlerfall eine Warnung, bei 0 macht das System stillschweigend weiter. Der Wert 2 zwingt das System zu einem Neustart mit der zuletzt erfolgreich gestarteten Konfiguration (last known good); schlägt der Ladeversuch auch hier fehl, macht das System weiter. Steht der Wert auf 3, hält das System im Fehlerfall an. Weitere Einträge regeln Abhängigkeiten der Treiber und Dienste untereinander.

Registry-Schäden wirken sich schon beim Booten aus: Gern trifft es die Datei namens „System“ in system32\config, die den HKEY_LOCAL_MACHINE-Ast der Registry enthält und für den Systemstart wegen der dort abgelegten Daten über die Treiber und nachfolgend zu ladende Dinge von tragender Bedeutung ist. Beschädigt wird die Datei mitunter, wenn man einen PC unbedacht abschaltet oder Probleme mit Festplatte oder Hauptspeicher bestehen - solche Probleme können sich sogar durch das „Verschwinden“ der Datei äußern.

">

"Windows enträtselt"
Weitere Artikel zum Thema Windows XP finden Sie in der c't 10/2004:
Schluss mit XP-Fehlstarts S. 94
Zielsicher Probleme aufspüren S. 100
Bluescreen-Analyse S. 110

Kommentare

Kommentare lesen (92 Beiträge)

Anzeige