Ist es möglich zu verhindern, dass Windows beim Herunterfahren die Ruhezustandsdatei (hiberfil.sys) löscht?

7

Ich versuche, die Ruhezustandsdatei von der Systempartition (SSD) auf eine andere Partition (HDD) zu verschieben.

Ich weiß, dass viele Leute sagen, dass dies unmöglich ist, aber ich bin noch nicht ganz überzeugt.

Was ich versuche zu tun ist:

  1. Starten Sie von Windows 7 DVD;
  2. Kopieren hiberfil.sysvon SSD auf HDD;
  3. Löschen hiberfil.sysvon SSD;
  4. Erstellen Sie einen symbolischen Link für eine hiberfil.sysSSD.

Leider stellte ich beim Booten von Windows 7 DVD leider fest, dass die Datei hiberfil.sys nicht vorhanden war. Ich erinnere mich, dass ich irgendwo gelesen habe, dass Windows die Datei hiberfil.sys beim Herunterfahren automatisch löscht.

Ist es möglich zu verhindern, dass Windows beim Herunterfahren die Datei hiberfil.sys löscht?

Vielen Dank


Update :

Es scheint, dass Windows die Datei hiberfil.sys beim Herunterfahren nicht löscht. Es war die VMware Tools automatisch deaktiviert Ruhezustand beim Herunterfahren / Starten.


quelle
Warum benötigen Sie einen Ruhezustand auf einer SSD? Es wäre kostengünstiger, stattdessen nur Schlaf oder Herunterfahren zu verwenden.
Tamara Wijsman
1
@ Tom Wijsman: Ich benutze APC PowerChute. Der Ruhezustand muss aktiviert sein, damit mein PC nach dem Stromausfall automatisch in den Ruhezustand versetzt werden kann.
Ah, macht dann Sinn. Nun, ein Stromausfall ist höchstwahrscheinlich einmal im Jahr, also gibt es keine Sorge ... :)
Tamara Wijsman
4
@ TomWijsman die Häufigkeit von Stromausfällen kann stark variieren, je nachdem, wo Sie sind, vor allem in Entwicklungsländern
Xantec

Antworten:

5

Nein, du kannst es nicht bewegen.

Während der Startzeit verwendet Windows (und Ihr BIOS) ein minimales Datei-E / A-System, um das Startlaufwerk und die zum Beenden des Starts erforderlichen Dateien (einschließlich der Dateisystemtreiber) zu suchen. Da die Ruhezustandsdatei vor dem Herunterfahren den Systemstatus enthält, muss sie tatsächlich mit dem "vollständigen" Dateisystem gestartet werden.

Wenn Sie seit den DOS-Tagen da sind, müssen Sie möglicherweise "SYS" verwenden, um eine Festplatte bootfähig zu machen. Sie konnten die Startdateien (msdos.sys, io.sys usw.) nicht einfach auf die Festplatte kopieren und funktionieren lassen, da sie sich an einer bestimmten Adresse auf der Festplatte befinden müssen, damit das System weiß, wohin Finden Sie sie, um das eigentliche Betriebssystem zu starten. Gleiches Angebot hier ...

Hier ist ein guter Klappentext:

Der Winterschlaf folgt einem ähnlichen Muster. Wenn Sie das Betriebssystem in den Ruhezustand versetzen, wird der gesamte Speicherinhalt in die Ruhezustandsdatei kopiert. Das Wiederherstellen aus dem Ruhezustand bedeutet, dass diese Datei wieder in den Speicher verschoben und so getan wird, als wäre nichts passiert. Auch hier handelt es sich um ein weiteres Henne-Ei-Problem: Zum Laden der Ruhezustandsdatei benötigen Sie den Dateisystemtreiber, der Dateisystemtreiber befindet sich jedoch in der Ruhezustandsdatei. Wenn Sie die Ruhezustandsdatei im Stammverzeichnis des Startlaufwerks aufbewahren, kann stattdessen der Miniatur-Dateisystemtreiber verwendet werden.

Den Rest des Artikels können Sie hier lesen .

Ƭᴇcʜιᴇ007
quelle
1
@ techie007, danke für deine ausführliche Antwort und den Link. Jetzt bin ich völlig überzeugt :)
1
@caveman: Dieser Artikel stammt aus dem Jahr 2007. Das war in den frühen XP Vista-Zeiten und dieser Artikel bezieht sich höchstwahrscheinlich auf Windows XP, das derzeit nicht unterstützt wird. Windows 7 wurde Ende 2009 veröffentlicht. Sie sollten einem solchen alten Link also nicht wirklich vertrauen. Probieren Sie es aus, da die aktuelle Struktur möglicherweise symbolische Links zulässt oder den Pfad in der Registrierung ändert.
Tamara Wijsman
3
@ Tom Wijsman - Es gilt immer noch. Hier sind Referenzen von einem MS MVP aus dem Jahr 2009, insbesondere in Bezug auf Windows 7: social.technet.microsoft.com/Forums/bg-BG/w7itproui/thread/… - er verweist auf denselben Artikel. Ich denke, das Problem, das Sie bei Hardlinks finden werden, ist, dass sie erst existieren, wenn das Dateisystem ausgeführt wird, dh nachdem die Hibernaiton-Datei zum Booten verwendet wurde.
Ƭᴇcʜιᴇ007
2
@ Tom Wijsman - Ich bin mir bewusst, dass ein MVP kein wirklicher MS-Vertreter ist. Aber sie sind in der Regel besser informiert, wenn es um ihre bevorzugten MS-Technologien geht, als der durchschnittliche Typ im Internet. Die xbootmgr-Ablaufverfolgung dient zum Überprüfen der Systemleistung beim Ein- und Aussteigen aus dem ACPI-Ruhezustand (und wie lange sie sich in diesen Zuständen befanden). Der Trace wird erst gestartet / fortgesetzt, nachdem die Ruhezustandsdatei bereitgestellt wurde und das Betriebssystem erneut ausgeführt wird.
Ƭᴇcʜιᴇ007
2
@ techie007: Tut mir leid, dass ich Devil's Advocate gespielt habe. Eine Erklärung für MS-Mitarbeiter aus dem Windows Internals-Buch finden Sie in meiner Antwort. Wenn Sie sie so verfolgen, wie Sie es getan haben, können Sie auf zwei aktuelle Arten überprüfen, ob dies auf diese Weise unmöglich ist. Sie müssen nur noch versuchen, dies zu ändern Registrierungsort, da es höchstwahrscheinlich aus einem bestimmten Grund vorhanden ist ...
Tamara Wijsman
2

Löschen nicht zulassen (wenn eine SID vorhanden ist)

Stellen Sie zunächst sicher, dass hiberfil.syskeine Berechtigungen geerbt werden, und fügen Sie Berechtigungen hinzu.

Stellen Sie dann sicher, dass jeder Benutzer Zugriff hat, außer dass er die Datei löschen kann:

Geben Sie hier die Bildbeschreibung ein

Auf diese Weise kann die Datei nicht gelöscht werden, wenn mindestens eine Sicherheitskennung angehängt ist.

Schauen Sie sich an, was Microsoft zu der Ruhezustandsdatei zu sagen hat.

Wenn ein Benutzer den Computer anschließend einschaltet, tritt ein normaler Startvorgang auf, mit der Ausnahme, dass Bootmgr nach einem gültigen Speicherabbild sucht und dieses erkennt, das in der Ruhezustandsdatei gespeichert ist. Wenn die Ruhezustandsdatei den gespeicherten Systemstatus enthält, startet Bootmgr Winresume, das den Inhalt der Datei in den Speicher liest, und setzt dann die Ausführung an dem Punkt im Speicher fort, der in der Ruhezustandsdatei aufgezeichnet ist.

Wenn Windows die BCD-Einstellung aktiviert hat, um Bootmgr über einen Lebenslauf im Ruhezustand zu informieren, wird der Startvorgang durch Starten von Winresume.exe verkürzt, wodurch der Inhalt der Datei in den Speicher gelesen und die Steuerung an den Code im Kernel übertragen wird, der ein System im Ruhezustand wieder aufnimmt. Dieser Code ist für den Neustart der Treiber verantwortlich, die beim Herunterfahren des Systems aktiv waren. Hiberfil.sys ist nur gültig, wenn der Computer beim letzten Herunterfahren in den Ruhezustand versetzt wurde.

Nachdem Bootmgr den geschützten Modus aktiviert hat, ist es voll funktionsfähig. Es stützt sich jedoch weiterhin auf vom BIOS bereitgestellte Funktionen, um auf IDE-basierte System- und Startdisketten sowie auf die Anzeige zuzugreifen. Die BIOS-Schnittstellenfunktionen von Bootmgr schalten den Prozessor kurzzeitig in einen Modus zurück, in dem vom BIOS bereitgestellte Dienste ausgeführt werden können, der als Real-Modus bezeichnet wird. Als nächstes liest Bootmgr die BCD-Datei aus dem Verzeichnis \ Boot unter Verwendung des integrierten Dateisystemcodes.

Bootmgr enthält schreibgeschützten NTFS-Code (Bootmgr unterstützt auch andere Dateisysteme wie FAT-, El Torito CDFS-, UDFS- und WIM-Dateien). Im Gegensatz zum Code des Bootsektors kann der Dateisystemcode von Bootmgr jedoch Unterverzeichnisse lesen.

- Windows-Interna

Nein, da der integrierte Dateisystemcode verwendet wird, ist dies höchstwahrscheinlich nicht möglich.

Das Beste, was Sie versuchen können, ist, den BCD zu ändern:

HKEY_LOCAL_MACHINE\BCD00000000\Objects\{db7f3566-bd6f-11df-b716-db3964014abb}\Elements\22000002\Element

Vielleicht könnten Sie versuchen, es auf X:\Some\Path\To\Whatever\File.Exteinen vollständig qualifizierten Pfad zu ändern.

Eine Lösung, die sicher funktioniert und Ihre Frage ermöglicht.

  1. Installieren Sie Ihr Windows auf Ihrer Festplatte.

  2. Verschieben Sie alles außer der hiberfil.sysDatei auf Ihre SSD .

  3. Erstellen Sie Verbindungspunkte zu allem auf Ihrer SSD.

Sie können auch die Größe der Ruhezustandsdatei verkleinern.

Sie können dies zu 50% mit tun powercfg.exe

-HIBERNATE, -H
        Enables-Disables the hibernate feature.  Hibernate timeout is not
        supported on all systems.

        Usage: POWERCFG -H <ON|OFF>
               POWERCFG -H -Size <PercentSize>
        -Size  Specifies the desired hiberfile size in percentage of the
               total memory. The default size cannot be smaller than 50.
               This switch will also enable the hiberfile automatically.
Tamara Wijsman
quelle
Ich konnte keine Berechtigungen für die Datei hiberfil.sys festlegen. Auf der Registerkarte Sicherheit der Eigenschaften der Datei hiberfil.sys wird "Die angeforderten Sicherheitsinformationen sind entweder nicht verfügbar oder können nicht angezeigt werden" angezeigt .
@caveman: Übernehmen Sie zuerst den Besitz der Datei. :)
Tamara Wijsman
@caveman: Das Ende meiner Frage mit einem praktischen Tipp aktualisiert ...
Tamara Wijsman
2
Was passiert, wenn Sie den Prozentsatz reduzieren?
Ivo Flipse
1
@IvoFlipse: Wenn Sie über 4 GB Speicher verfügen und weniger als 2 GB (ohne ReadyBoost) verwenden, werden nur 2 GB gespeichert, wenn Sie dies in Richtung 50% ändern, anstatt 4 GB mit Nullen oder zufälligen Daten.
Tamara Wijsman