Woher weiß der Computer, dass der PC nicht ordnungsgemäß heruntergefahren wurde?


92

Eigentlich traf mich diese Frage wegen Stromausfällen in meinem Haus. Bei einem Stromausfall geht die Stromversorgung des Computers plötzlich verloren.

Woher weiß der Computer, dass das Herunterfahren nicht ordnungsgemäß durchgeführt wurde?

Antworten:


104

Windows verwendet außerdem die Dirty-Bit- Methode, um zu ermitteln, ob der PC ordnungsgemäß heruntergefahren wurde:

Beim normalen Ausschalten ist das Bit ausgeschaltet. Bei einem Stromausfall oder einer nicht ordnungsgemäßen (erzwungenen) Abschaltung bleibt das Bit jedoch beim nächsten Start des PCs erhalten.

Dies bedeutet, dass Windows Abhilfemaßnahmen vorschlagen kann, z. B. das Starten im abgesicherten Modus.

Außerdem schreibt ein Windows-basierter PC einen Eintrag in das Ereignisprotokoll, in dem genau angegeben ist, wann und warum (falls bekannt) er heruntergefahren wurde. Es wird auch ein Ereignis geschrieben, wenn der PC gestartet wird.

Systemabschaltung

Systemstart

Wenn der PC neu gestartet wird, kann das Ereignisprotokoll überprüft werden. Wenn nach dem letzten Startereignis kein Abschaltereignis gefunden wird, wird festgestellt, dass der PC nicht ordnungsgemäß heruntergefahren wurde und möglicherweise Probleme aufgrund nicht gespeicherter Daten vorliegen Daten etc.


2
Ist Davids Antwort unten nicht genauer? Ich dachte, NTFS hätte ein "Dirty Bit", das der FS beim Mounten erkennt. Ich bin immer davon ausgegangen, dass das Ereignisprotokoll nur ein Protokoll dessen ist, was gefunden wird, und nicht die tatsächliche Erkennung und Begründung, die dahinter steckt.
HaydnWVN

3
In einer ungeplanten Ausschaltsituation (offensichtlich ohne USV) wäre das Herunterfahren jedoch "unerwartet" (im Ereignisprotokoll angegeben). Tolle Infos hierIf a program initiates an I/O operation that alters the structure of an NTFS volume - that is, changes the directory structure, extends a file, allocates space for a new file, and so on - NTFS treats that operation as an atomic transaction. It guarantees that the transaction is either completed or, if the system fails while executing the transaction, rolled back.
HaydnWVN

3
@HaydnWVN Das Dateisystem-Dirty-Bit wird verwendet, um eine abnormale Deaktivierung zu identifizieren, sodass das Betriebssystem weiß, dass sich das Dateisystem möglicherweise in einem unbestimmten Zustand befindet, und eine Diagnose ausführen kann (z. B. chkdsk), um potenzielle Dateisystemprobleme zu identifizieren. Aus diesem Grund wird manchmal der Reparaturdialog angezeigt, wenn USB-Laufwerke angeschlossen werden, die nicht ordnungsgemäß entfernt wurden. Im Gegensatz dazu bedeutet der Begriff "Dirty-Bit" einfach ein Feld, das gesetzt und später wieder gelöscht wird, wenn die System- oder Gerätelaufzeit ordnungsgemäß beendet wird. Eine nicht ordnungsgemäße Terminierung verlässt den Feldsatz und wird bei der nächsten Initialisierung des Geräts erkannt.
Polynom

1
@ChrisF Diese Anforderung kann in der Gruppen- / lokalen Richtlinie deaktiviert werden. Und wird umgangen, wenn es über die Systemsteuerung eines VM-Hosts ausgeschaltet wird. Verlassen Sie sich besser auf Ereignisse Kernel-General # 12 (normales Herunterfahren) und EventLog # 6002 (das letzte Herunterfahren war unerwartet). Wenn es ein BSOD war, sollte es auch einen BugCheck # 1001 geben. (Alle Ereignisse: Quelle #id.)
Richard

1
Erstens, wie wird der Zustand dieses Bits nach einem Aus- und Wiedereinschalten im flüchtigen Speicher gehalten? Was ist mit Dual-Boot? Das Wikipedia-Zitat liest sich wie eine Vermutung - obwohl ich das Buch mit den Betriebssystemkonzepten, auf das es verweist, nicht gelesen habe. Zweitens ist die Idee, dass Windows das Ereignisprotokoll liest, um festzustellen, ob ein sauberes Herunterfahren stattgefunden hat, offensichtlich falsch. Die Antwort auf bootstat.dat für Windows ist weitaus wahrscheinlicher als jede dieser Vermutungen. Dies liegt zum Teil daran, dass sie sinnvoller ist, zum größten Teil jedoch an der angegebenen Quelle.
Hanf

121

Bei PCs, die nicht auf Windows basieren, erfolgt die Erkennung normalerweise auf Dateisystembasis. Wenn ein Dateisystem im Lese- / Schreibmodus bereitgestellt wird, wird ein Eintrag in das Dateisystem geschrieben, der es als verschmutzt markiert. Wenn das Dateisystem nicht gemountet ist, wird ein Eintrag geschrieben, der es als sauber kennzeichnet. Beim Start überprüft das Betriebssystem, ob die Kerndateisysteme als fehlerhaft markiert sind, und wenn ja, gibt es kein sauberes Herunterfahren - zumindest dieser Dateisysteme.


29
+1, weil die Frage sich nicht auf ein bestimmtes Betriebssystem bezieht.
Trevor Boyd Smith

42

Laut den Autoren von Windows Internals, 5. Aufl., Handelt es sich bei Windows um die Datei bootstat.dat (die sich standardmäßig im Verzeichnis \ boot der Systempartition befindet):

Windows verwendet eine Startstatusdatei, um die Tatsache zu protokollieren, dass es verschiedene Phasen des Systemlebenszyklus durchlaufen hat, einschließlich des Startens und Herunterfahrens. Auf diese Weise können der Start-Manager, der Windows-Loader und das Startup Repair-Tool ein abnormales Herunterfahren oder ein fehlerhaftes sauberes Herunterfahren erkennen und dem Benutzer Wiederherstellungs- und Diagnosestartoptionen anbieten.

 


3
Quelle des Zitats?
Paul DelRe

23
"Windows Internals" von Mark Russinovich und David Solomon mit Alex Ionescu, Seite 1010.
artm

Um dies mit der Antwort von ChrisF zu vergleichen: Das "Dirty Bit", das von jedem Dateisystem verwaltet wird, gilt nur für den Status dieses Dateisystems. es ist nicht systemweit. Beachten Sie, dass Sie eine austauschbare Festplatte "sicher trennen" können - dies löscht das fehlerhafte Bit für dieses Dateisystem - und anschließend könnte es zu einem unerwarteten Herunterfahren kommen.
Jamie Hanrahan

0

Auf einigen Computern ist möglicherweise eine betriebssystemunabhängige Methode im Hardware-BIOS festgelegt. Dies hängt vom Computerhersteller und -lieferanten des BIOS ab.

Zu den wichtigsten zählen American Megatrends Inc. (AMI), Award und Phoenix Technologies. Schauen Sie sich diese Hersteller für Einzelheiten an.


2
Anstatt nur mit der Hand zu wedeln und zu sagen, "die Informationen sind da draußen", wie wäre es, wenn Sie tatsächlich auf einige relevante Referenzen verweisen?
G-Man,
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.