Windows Bluescreen of Death
Der Windows Bluescreen, auch bekannt als „Blue Screen of Death“ (BSOD), ist ein Fehlerbildschirm, der anzeigt, dass ein schwerwiegender Fehler im Betriebssystem aufgetreten ist. Dieser Fehler kann dazu führen, dass das Betriebssystem nicht mehr ordnungsgemäß funktioniert und der Computer neu gestartet werden muss. In diesem Beitrag befassen wir uns damit, was ein BSOD ist, erläutern die häufigsten Gründe für sein Auftreten und zeigen, wie man ihn technisch analysieren kann, um die Ursache zu finden.
Die Aufgabe des BSOD
Auch wenn der BSOD für viele Nutzer als störend empfunden wird, ist er ein sehr wichtiger Bestandteil des Windows Betriebssystems und hat viel mehr Positives an sich, als den meisten bewusst ist.
Der BSOD hat das Ziel, den Benutzer darauf aufmerksam zu machen, dass ein schwerwiegender Fehler im Betriebssystem aufgetreten ist. Dieser Fehler kann von einer fehlerhaften Anwendung, einem Treiber oder sogar einem Hardwarefehler verursacht werden. Der BSOD wird angezeigt, um den Benutzer darauf hinzuweisen, dass das Betriebssystem nicht mehr stabil ist und ein Neustart erforderlich ist, um eventuelle Schäden zu minimieren und das System wiederherzustellen. Ohne den Windows Bluescreen besteht ein recht hohes Risiko, dass Daten beschädigt werden oder das System überhaupt nicht mehr nutzbar ist.
Ein kleines Beispiel
Nehmen wir beispielsweise mal eine Zugriffsverletzung im Speicher (RAM) des Computers: Jedes Programm bekommt vom Betriebssystem einen bestimmten Bereich auf dem Arbeitsspeicher zugeteilt, in dem es sich austoben kann. Jetzt kann es passieren, dass ein Programm sich nicht an die vorgegebenen Regeln hält und auf Speicher außerhalb seines erlaubten Bereichs zugreifen möchte, was schwerwiegende Folgen haben könnte.
Nehmen wir an, zwei Programme bekommen jeweils einen Teil des Arbeitsspeichers, in dem sie ihre Daten speichern können. Im linken Bild sieht man die Aufteilung des Speichers und die Grenze dazwischen.
Das rechte Bild zeigt wiederum, wie das Programm1 auf den Speicherbereich von Programm2 zugreift und die Daten dort mit seinen eigenen überschreibt. In der Programmierung versteht man darunter einen Speicherzugriffsfehler oder auch Segmentation Fault. Wenn es sich bei Programm2 beispielsweise um einen Text-Editor handelt, könnte dieser Zugriff dafür sorgen, dass das geöffnete Textdokument nicht mehr lesbar wird und die Daten verloren gehen. Sollte es sich stattdessen um eine wichtige Systemdatei handeln, welche aktuell genutzt wird, könnte die Beschädigung des Inhalts zu einem defekten System führen, wodurch sich das Betriebssystem nicht mehr starten lässt.
Bei solchen Fehlern kommt der BSOD ins Spiel: Sobald Windows (bzw. der Windows-Kernel) einen unerlaubten Zugriff erkennt, schützt es das System durch einen Bluescreen und stellt die Zugriffe für alle Programme sofort ein, um Dateien und das System zu schützen. Bevor das System jedoch einen Neustart erzwingt, sammelt es noch einige Daten zu den aktiven Prozessen und Zugriffen und speichert diese. Bei diesen Daten handelt es sich um sogenannte Dump-Files, die viele Möglichkeiten zur Fehleranalyse bieten. Mehr dazu weiter unten.
Fehlerursachen finden
Die Ursachen für einen Bluescreen sind im ersten Moment oft unklar. Mit den nachfolgend vorgestellten Möglichkeiten lässt sich der Fehler aber in den meisten Fällen gut eingrenzen und identifizieren.
Es gibt ein Sysinternals Tool, welches Bluescreens „erzwingt“. Das ist super, um das Analysieren zu üben. Hier der Link: learn.microsoft.com
1. Stopcode
Auch wenn der blaue Bildschirm im ersten Moment etwas generisch und unspektakulär wirkt, gibt er jedoch Auskunft über den aufgetretenen Fehler. Auch wenn dieser erstmal etwas kryptisch erscheint, kann er für die grobe Fehleranalyse genutzt werden. Der Stopcode (oder Bug Check Code) befindet sich am Ende des Bluescreen-Textes und meldet zurück, warum der BSOD aufgetreten ist. Zur Analyse bietet Microsoft auf der Webseite learn.microsoft.com eine ausführliche Liste der möglichen Stopcodes an: learn.microsoft.com
2. Ereignisanzeige
Die Windows Ereignisanzeige dokumentiert unter anderem System- und Anwendungsfehler und speichert diese für eine bestimmte Zeit. Häufig werden Bluescreens durch Probleme in bestimmten Programmen oder Treibern ausgelöst. Abhängig vom Fehler hat das Windows-Betriebssystem einen Eintrag in der Ereignisanzeige hinterlegt, der Aufschluss über die Ursache des Bluescreens geben könnte. Hier sollte man sich durch die letzten Fehler durchklicken. In diesem Fall ist es vorteilhaft, wenn die Uhrzeit, zu der der BSOD aufgetreten ist, bekannt ist. Dadurch lassen sich die Ergebnisse filtern, und die Daten sind übersichtlicher.
3. Analyse des Fehler-Dumps
Damit ein Fehlerdump bei einem Bluescreen erstellt wird, muss diese Option auch aktiviert sein. Dies geschieht unter Windows 11 unter Systemeigenschaften > Erweitert > Starten und Wiederherstellen.
Die Systemeigenschaften lassen sich mit WIN + R und dem Befehl sysdm.cpl aufrufen.
Diese Methode ist zwar etwas aufwändiger und erfordert tieferes Wissen über das Betriebssystem, liefert jedoch auch sehr gute Ergebnisse hinsichtlich der Ursachenfindung und -behebung. Die zuvor erwähnten Dumpfiles werden auf dem Windows-Laufwerk (meist C:) abgelegt und beinhalten wichtige Daten, wie den Wert bestimmter Register oder Pfade zu den fehlerhaften Prozessen. Um diese analysieren zu können, benötigt man jedoch weitere Tools, die standardmäßig nicht mit dem Betriebssystem mitgeliefert werden. Es gibt mehrere Möglichkeiten und Tools, um diese Dateien auszulesen. In diesem Beitrag beziehe ich mich auf das WinDbg-Programm.
Dump-Files analysieren
Die Dumpfiles werden unter festgelegten Pfaden gespeichert. Sollte das betroffene System nicht mehr hochfahren, können diese auch von der Festplatte kopiert und auf einem anderen Rechner analysiert werden. Die Fehlerdumps findet man typischerweise unter:
C:\Windows\MEMORY.DMP
C:\Windows\Minidump
Ein MEMORY.DMP ist eine vollständige Speicherabbilddatei, die alle Informationen enthält, die im Arbeitsspeicher des Computers gespeichert sind, zu dem Zeitpunkt, als das Problem aufgetreten ist. Es enthält alle Daten, die im Arbeitsspeicher geladen waren, einschließlich des Betriebssystems, der Treiber und der Anwendungen. Diese Art von Dump-Datei wird oft verwendet, um schwerwiegende Systemfehler zu untersuchen, die das Betriebssystem betreffen und die nicht durch einen Minidump eindeutig identifiziert werden können.
Ein Minidump ist hingegen eine kleinere Dump-Datei, die nur die Informationen enthält, die für die Analyse des Fehlers erforderlich sind. Es enthält nur die Daten, die für die Fehleranalyse erforderlich sind und speichert nicht den gesamten Arbeitsspeicher. Minidumps sind in der Regel kleiner als MEMORY.DMPs und werden häufig verwendet, um Probleme zu untersuchen, die sich auf eine bestimmte Anwendung oder einen Treiber beschränken. In den meisten Fällen ist ein Minidump ausreichend, um die Fehlerursache zu finden.
Für die Analyse des Dumpfiles nutze ich die Windows Debugging Tools, da ich mit diesen gute Erfahrungen gemacht habe. Das Tool WinDbg ist Bestandteil des Windows-SDKs. Mittlerweile ist dieses Tool aber auch direkt über den Microsoft Store erhältlich:
Windows SDK
MS Store WinDbg Preview
Das Öffnen einer Dumpdatei erfolgt in beiden Versionen ähnlich. Über File > Open dump File
lässt sich das Dumpfile in den älteren Versionen des Windows-SDK laden. Bei den neueren über File > Start debugging > Open dump File
.
Nach dem Öffnen des Dump-Files erscheint erstmal viel Text. Hier findet man Informationen über das Dump-File und schon den ersten Hinweis auf den Fehler. Um eine genauere Ausgabe des Dump Files zu erhalten, müssen wir dieses erst analysieren. Hierfür geben wir den folgenden Befehl in das Eingabefeld (Kd>) unter dem ausgegebenen Text ein: !analyze
. Danach dauert es etwas, und dann erhalten wir genaue Details über die Fehlerursache. Detailliert auf die Ausgabe einzugehen wäre zu ausführlich für diese Anleitung, aber folgende Ausgabeblöcke sind entscheidend für die erste Analyse:
BUGCHECK_CODE: 7f
BUGCHECK_P1: 8
BUGCHECK_P2: ffffe481beb17e70
BUGCHECK_P3: ffffd003543c7ff0
BUGCHECK_P4: fffff8039fdf1f14
PROCESS_NAME: notmyfault64.exe
IMAGE_NAME: myfault.sys
BUGCHECK_CODE
: Der Bugcheck Code wurde bereits erklärt. Über ihn findet man den Grund für den Bluescreen. Die Bug Check Code Reference auf learn.microsoft.com ermöglicht das Dekodieren der Bugcheck Codes. In diesem Fall handelt es sich um einen UNEXPECTED_KERNEL_MODE_TRAP Fehler.
BUGCHECK_P1
: Dies ist der erste Parameter des genauen Fehlers. Die Bedeutung der einzelnen Parameter eines Fehlers lassen sich in der Bug Check Code Reference finden, indem man den zuvor herausgesuchten Fehler in der Liste anklickt.
Im Fall des UNEXPECTED_KERNEL_MODE_TRAP Fehlers bedeutet der Wert 8 des Parameter1, dass es sich um eine Double Fault handelt. Die Fehlerursache ist in diesem Fall ein Kernel-Stack-Overflow (Überlauf eines „Datenstapels“).
Die Parameter P2 bis P4 beinhalten meist die Speicheradresse, an der der Fehler aufgetreten ist, und welchen Wert diese hatte. Die Bedeutung der Parameter kann jedoch von Fehlertyp zu Fehlertyp variieren.
IMAGE_NAME
: Hier steht der Name der Anwendung oder des Treibers, die zum Zeitpunkt des Absturzes ausgeführt wurde und als Ursache des Fehlers identifiziert wurde. Dieser Name wird aus dem Dump-File extrahiert und kann verwendet werden, um die genaue Fehlerursache zu bestimmen.
PROCESS_NAME
: Diese Variable enthält den Namen des Prozesses, in dem die betreffende Anwendung oder der Treiber lief.
!! Nicht immer lässt sich genau sagen, ob der angegebene Prozess für den Absturz verantwortlich war, da es auch andere Gründe für einen Absturz geben kann, die nicht unbedingt mit dem spezifischen Prozess in Zusammenhang stehen. In vielen Fällen betrifft es jedoch auch den genannten Prozess.
Das WinDbg Tool bietet neben der Analysefunktion noch zahlreiche andere Möglichkeiten, die jedoch den Rahmen dieses Beitrags sprengen würden.
Das Thema rund um den Windows Bluescreen ist sehr komplex und umfangreich. Ich hoffe, ich konnte in diesem Beitrag etwas Klarheit schaffen und dem einen oder anderen helfen, die Ursache seines Bluescreen-Problems zu finden und vielleicht zu erkennen, dass der Bluescreen nicht als Feind, sondern als nützlicher Helfer des Systems gesehen werden sollte.
Was ist schon ein Bluescreen im Vergleich zu Datenverlust…
Weitere Informationen rund um das Thema BSOD und technischere Details findet man unter:
https://learn.microsoft.com/
0 Comments