TL; DR:
Ich habe festgestellt, dass die Registrierungsänderung nach dem Neustart nicht angezeigt wird, wenn ich eine Registrierungsänderung vornehme und dann mein Windows 10-System herunterfahre.
Mir ist auch aufgefallen, dass das Löschen einer Ruhezustandsdatei die Fähigkeit eines Linux-Wiederherstellungstools beeinträchtigen kann, Änderungen an der Windows-Registrierung im Offlinestatus vorzunehmen. Das Tool scheint nach dem Löschen einer Ruhezustandsdatei keine dauerhaften Änderungen vornehmen zu können. Ich werde unten spezifische Beispiele auflisten.
Beispiel 1:
- Ich füge einen Schlüssel mit dem Namen "1111" in "HKLM \ SOFTWARE" ein. Ich schalte meine Box dann hart aus, indem ich den Ein- / Ausschalter 5 Sekunden lang gedrückt halte.
- Wenn ich die Registrierung zurückziehe, sind dieser Schlüssel und seine Werte weg:
- (Diese Bilder wurden zu Formatierungszwecken bearbeitet.)
Beispiel 2 :
- Nehmen Sie eine Änderung in der Registrierung vor (mit regedit)
- Schalten Sie das System in den Ruhezustand
- Starten Sie ein Linux-Wiederherstellungstool
- Löschen Sie die Ruhezustandsdatei, um den Datenträger bereitzustellen.
- Lesen Sie die Windows-Registrierung (aus dem Wiederherstellungstool)
- Die Registrierungsänderung ist weg.
Dies scheint gleichbedeutend mit einem harten Herunterfahren der Box zu sein.
Beispiel 3:
Ich sehe fremdes Verhalten, wenn ich:
- Hibernate die Box
- Booten Sie mit einem Linux-Wiederherstellungstool und löschen Sie die Ruhezustandsdatei
- Nehmen Sie Änderungen an der Registrierung vor (über das Wiederherstellungstool).
- Starten Sie die Box neu
Diese Änderungen werden auch in der Registrierung nicht berücksichtigt.
Also, was ist hier los?
- Wann schreibt Windows 10 die Registrierungsänderungen auf die Festplatte?
- Warum verhindert das Löschen einer Ruhezustandsdatei (in Beispiel 3), dass vom Wiederherstellungstool vorgenommene Registrierungsänderungen beim nächsten Start übernommen werden?
In der Hoffnung, eine Klarstellung zu bekommen!
quelle
Antworten:
TL; DR: Fahren Sie Ihr System ordnungsgemäß herunter.
Der Ruhezustand hat nichts mit dem Herunterfahren zu tun. Er hängt eng mit dem Suspend-to-RAM (Ruhezustand) zusammen, außer mit dem Inhalt des Arbeitsspeichers, der auf die Festplatte verschoben wird, damit er wieder eingelesen und der Betrieb genau dort fortgesetzt werden kann, wo das System aufgehört hat .
Wenn Sie möchten, dass die Änderungen beibehalten werden, müssen Sie den Ruhezustand und den Windows-Schnellstart (eine Teilmenge des Ruhezustands) deaktivieren . Oder Sie können den Computer neu starten, anstatt ihn in den Ruhezustand zu versetzen und neu zu starten.
Der Grund, warum Änderungen nicht beibehalten werden, liegt darin, dass sie nur in der Ruhezustandsdatei auf die Festplatte geschrieben werden. Was Sie löschen, was bedeutet, dass das Dateisystem sich möglicherweise selbst reparieren und in einen Zustand zurückkehren muss, in dem es zuletzt als fehlerfrei bekannt war.
Während das System in den Ruhezustand versetzt wird, gibt es mehrere wichtige Dateisystemstrukturen, die möglicherweise nicht auf die Festplatte geschrieben wurden und sich stattdessen im RAM befinden. Das System erwartet, dass sich der Datenträger nach dem Reaktivieren aus dem Ruhezustand in einem bestimmten Zustand befindet, und es ist möglich, dass Datenträgercaches und wichtige Systemdateien in der Ruhezustandsdatei und nicht auf dem tatsächlichen Datenträger gespeichert werden.
Wenn Sie das System ordnungsgemäß herunterfahren, wird der Arbeitsspeicher von Windows ordnungsgemäß auf die Festplatte übertragen und die Bereitstellung der Festplatte vor dem Herunterfahren aufgehoben.
Um ein ordnungsgemäßes Herunterfahren zu erzwingen, öffnen Sie eine Eingabeaufforderung und geben Sie Folgendes ein
/s
ist "Herunterfahren",/f
erzwingen und/t 0
"jetzt" bedeuten (Zeit = 0 Sekunden)Oder Sie können einfach den Schnellstart und den Ruhezustand deaktivieren.
Weitere Informationen finden Sie unter HowtoGeek: Beim Herunterfahren wird Windows 10 nicht vollständig heruntergefahren (aber beim Neustart)
Wenn Sie einen Hard-Shutdown durchführen, besteht das Problem darin, dass Windows nicht garantiert alle Änderungen in derselben Millisekunde (oder sogar in der Minute) auf die Festplatte schreibt, in der Sie die Änderung vorgenommen haben. Es wird mit ziemlicher Sicherheit innerhalb weniger Minuten geschrieben, aber die Wahrscheinlichkeit, dass es tatsächlich geschrieben wurde, wird mit der Zeit zunehmen. Es ist unwahrscheinlich , sofort geschrieben wird, dann in der Nähe von der Zeit , Sie die Änderung steigt die Wahrscheinlichkeit stark zu machen, und wird mit ziemlicher Sicherheit innerhalb einer Stunde geschrieben worden ist.
Die Sache ist jedoch, dass Sie dem System nicht die Möglichkeit geben, Änderungen sicher auf die Festplatte zu schreiben, indem Sie ein hartes Herunterfahren erzwingen.
Die meisten modernen Dateisysteme sind so geschrieben, dass Änderungen so sicher wie möglich vorgenommen werden. In der Vergangenheit wurden sie als "atomar" bezeichnet, wie bei der Änderung entweder geschehen ist oder nicht.
Heute wissen wir, sie als Journaling - Dateisysteme , weil sie ein Protokoll der Operationen halten, der wird , dass entweder rückgängig gemacht werden kann passieren , oder vorwärts im Falle eines Systemausfalls und Neustart rollte. Beim Start nach einem Stromausfall prüft das System das Journal und prüft bei jeder Transaktion, ob die tatsächlichen Dateidaten auf die Festplatte geschrieben wurden und "gut" sind. Wenn dies der Fall ist, wird die Übertragung vorwärts ausgeführt und abgeschlossen. Wenn dies nicht der Fall ist, wird auf die alten Daten zurückgesetzt.
In dieser Reihenfolge befindet sich die Festplatte fast immer in einem leicht zu reparierenden Zustand.
Wenn Sie Ihr System jedoch zum unerwarteten Herunterfahren zwingen, können Sie nicht garantieren, dass die Transaktion so weit fortgeschritten ist, dass sie bei der Reparatur vorwärts rollen kann, und es besteht die Möglichkeit, dass ein Betriebssystem wie Linux die Transaktionshistorie weniger beachtet als Windows und wahrscheinlicher ist als nicht nur Änderungen vorzunehmen, die alles zurück und nicht vorwärts rollen.
Wenn Sie Windows neu gestartet haben, wird möglicherweise versucht, die Festplatte ordnungsgemäß zu reparieren, da das Dateisystem besser bekannt ist.
quelle
Wie auf der MSDN-Seite
RegFlushKey
dokumentiert für :Dies deutet darauf hin, dass abgesehen vom sofortigen Löschen eines bestimmten Schlüssels auf die Festplatte (wodurch alle anderen Benutzer bis zum Abschluss des Löschvorgangs aus der Registrierung ausgeschlossen werden) die Registrierung automatisch in regelmäßigen Abständen gelöscht wird Zeit, die Sie zwischen dem Schreiben des Schlüssels und dem Herunterfahren gewartet haben. Außerdem wird es beim Herunterfahren gespült, wie Sie bereits herausgefunden hatten.
Sie können die
RegFlushKey
Funktion in der Software verwenden, die den Schlüssel manipuliert, oder ein zusätzliches Tool damit erstellen, um das sofortige Schreiben eines Registrierungsschlüssels auf die Festplatte zu erzwingen, wenn dies für Ihren Anwendungsfall von entscheidender Bedeutung ist.quelle
sync
tat bündig auf die Festplatte der Registrierung. Es würde einfach keinen Sinn ergeben. Warum sollte das Leeren des Dateisystemcaches (der vom Konfigurationsmanager verwendet wird , nicht umgekehrt) plötzlich den eigenen Cache des Konfigurationsmanagers leeren? Es weiß nicht einmal, wie der Cache auf höherer Ebene aufgebaut ist, wenn überhaupt einer vorhanden ist.TL; DR: Es ist sehr vorsichtig, dies zum richtigen Zeitpunkt zu tun .
Die Dokumentation zu
FSCTL_MARK_AS_SYSTEM_HIVE
hat folgendes zu sagen:Ich glaube nicht, dass mehr Details öffentlich verfügbar sind.
Beachten Sie, dass die Spülung Dateisystem bedeutet nicht , die Spülung Registrierung , weil die Registrierung Caching auf ausführen können oben des Dateisystems. Um die Registrierung zuerst zu leeren , müssen Sie auf Ihren interessierenden Schlüssel hinweisen
NtFlushKey
oderZwFlushKey
angerufen werden.quelle