Ruhezustand zwischen OS X und Bootcamp Win 7

Ruhezustand zwischen OS X und Bootcamp Win 7

Ist es möglich, die echten Ruhezustandsfunktionen von Windows 7 und OS X zu nutzen, um eine Art sofortiges Umschalten zwischen den beiden zu ermöglichen? Stellen Sie sich das beim Lesen/Schreiben der Ruhezustandsbilder auf eine schnelle SATA-3-SSD vor.

Hibernate-Beschädigungsbehebung:Wenn dies möglich ist, stellen Sie sicher, dass Ihre verschiedenen Partitionen nicht gegenseitig beschreibbar sind. (Stellen Sie es beispielsweise so ein, dass Boot Camp Windows 7 nicht auf OS X-Partitionen schreiben kann und umgekehrt). Diese Sicherheitsmaßnahme sollte es unmöglich machen, dass Ihre verschiedenen Systeme sich gegenseitig beschädigen, wenn eines in den Ruhezustand versetzt wird.

Bearbeiten:Mir ist aufgefallen, dass ich mir nicht sicher bin, ob Partitionen auf einer Festplatte so funktionieren. Der OS X-Kernel im Ruhezustand könnte Verweise auf Blöcke auf der Festplatte enthalten, in die er nach dem erneuten Aufwecken weiterhin schreibt. Sind solche Festplattenblöcke in einer Partition enthalten oder werden sie einer Partition zugewiesen, nachdem sie beschrieben wurden? Ist das auf HDD und SSD anders? Betrifft dies den oben genannten Hibernate-Corruption-Fix?

Ok, lass uns weitermachen:

Windows 7 verfügt bereits über die Option „Ruhezustand“, mit der Sie den Computer wieder auf Ihre OS X-Partition booten können. OS X bietet jedoch nicht genau dasselbe.

Unter OS X ist es möglich, den Ruhezustand durch Ändern der Systemvariable „hibernatemode“ zu aktivieren.

Vor OS X 10.7

sudo pmset -a Ruhezustand 2

OS X 10.7

sudo pmset -a Ruhezustand 25

Dadurch wird Ihr Mac in den Ruhezustand versetzt, wenn Sie ihn in den Ruhezustand versetzen. Sie können ihn folgendermaßen in den Ruhezustand versetzen:

sudo shutdown -s jetzt

Ok, soweit so gut. Wir können also sowohl Windows 7 als auch OS X Lion nach Belieben in den Ruhezustand versetzen. Aber warten Sie! Es folgen noch weitere Probleme.

Wenn Sie OS X in den Ruhezustand versetzen, wird OS X automatisch wieder gestartet, wenn Sie Ihren Mac wieder einschalten. Dies macht es uns unmöglich, es für „Hotswitching“ zwischen Partitionen zu verwenden.

Mögliche Lösungen:
Wenn Sie installierenreFitohne rEFItBlesser erhalten Sie nach dem Ruhezustand von OS X das rEFIt-Startmenü. Unter OS X 10.7 Lion funktioniert dies jedoch nicht vollständig, stattdessen erhalten Sie einen schwarzen Bildschirm und müssen Ihren Mac hart herunterfahren. Aber hey! Zumindest unterbricht es den automatischen OS X-Start, oder? Vielleicht kann es von dort aus noch weiter optimiert werden.

Wie bereits erwähnt, wird das rEFIt-Startmenü bei früheren OS X-Versionen tatsächlich nach dem Herunterfahren und Einschalten im Ruhezustand angezeigt. So können Sie beispielsweise stattdessen Ihre Boot Camp-Partition für Windows 7 starten. Allerdings gibt es auch hier Probleme. Anscheinend verliert die OS X-Partition ihr Ruhezustandsflag, wenn Sie diese Methode befolgen, was bedeutet, dass sie beim nächsten Starten von OS X nicht aus dem Ruhezustand zurückkehrt. Stattdessen wird ein sauberer Neustart durchgeführt.Warum ist das?
Sucht OS X nach der Existenz eines Ruhezustandsabbilds, um zu bestimmen, ob es aus dem Ruhezustand aufgeweckt werden soll oder ob ein sauberer Neustart durchgeführt werden soll, oder ist dafür eine Art Systemvariable/Flag gesetzt?

Zusammenfassung

Wenn Win 7 in den Ruhezustand wechselt, wird es vollständig heruntergefahren und Sie können dann beim Start OS X starten. Unter OS X zwingt Sie der Ruhezustand jedoch dazu, OS X zu aktivieren. Können Sie das so hacken, dass Sie die Startpartition auswählen können, nachdem OS X in den Ruhezustand gewechselt ist, und trotzdem später zu OS X zurückkehren und es aus dem Ruhezustand aktivieren können?

Mal sehen, was uns gemeinsam einfällt!

Antwort1

So, wie Sie denken, ist das nicht möglich. Das Problem liegt in der engen Integration der Firmware von Apple und OS X. OS X und die Firmware arbeiten zusammen, um den Ruhezustand des Computers zu bestimmen.

Wenn Windows in den Ruhezustand wechselt, speichert es den Inhalt des RAM in C:\Hiberfil.sys und setzt ein Flag in der Registrierung, das besagt, dass sich der Computer im Ruhezustand befindet. Wenn Sie einen Windows-Computer zum ersten Mal booten, lädt der Bootsektorcode die BCD-Datei, die diesen Teil der Registrierung sehr früh im Bootvorgang lädt und erkennt, dass sich das System im Ruhezustand befindet. Nach einer grundlegenden Plausibilitätsprüfung lädt es hiberfil.sys wieder in den Speicher. Wichtig dabei ist, dass all dies im Dateisystem enthalten ist. Aus diesem Grund können Sie OS X problemlos booten und dann wieder Windows booten, und es wird weiterhin aus der Ruhezustandsdatei fortgesetzt.

Dasselbe gilt nicht für OS X. Wenn OS X in den Ruhezustand wechselt, speichert es den Inhalt des RAM in /var/vm/sleepimage, genau wie Windows. Aber es speichert das Ruhezustandsflagim PRAM, nicht das Dateisystem (die Einstellung heißt IORegistryCurrentSleepMode, falls es Sie interessiert). Wenn Sie einen Mac wieder einschalten, werden die Werte im PRAM gelesen, bevor überhaupt versucht wird, das Betriebssystem zu booten. Wenn das Flag anzeigt, dass das System im Ruhezustand ist, wird es als Erstes in den Normalzustand zurückversetzt. Die Firmware bootet das System dann sofort und ignoriert die Startdisketteneinstellung und alle Versuche zum OptionBooten. Sie erhalten nicht einmal einen Startton. Auf einem Mac enthält die Firmware die gesamte Logik, die zum Überprüfen des Dateisystems und Booten des Betriebssystems erforderlich ist. Sie benötigt keinen Bootcode wie Windows.

Wenn Sie rEFIt in den Mix werfen, fügt es sich selbst in den Prozess ein. Es ersetzt das normale /System/Library/CoreServices/boot.efi (das ist der Bootloader von OS X) durch seine eigene Bootloader-Datei. Hier wird es für mich etwas unklar, weil das alles proprietäres Zeug von Apple ist, aber unterm Strich ist es so, dass die Firmware beim Booten von OS X alle Argumente übergibt, die zum Laden von /var/vm/sleepimage anstelle des normalen Darwin-Kernels erforderlich sind. rEFIt macht das mit Lion und höher nicht richtig. Aber unabhängig davon, ob es sich um eine ältere oder eine neuere Version von OS X handelt, hat die Firmware das Ruhezustandsbit bereits umgeschaltet, bevor rEFIt überhaupt geladen wird. Aus diesem Grund ist es nach dem ersten Einschalten nicht mehr möglich, OS X aus dem Ruhezustand fortzusetzen.

verwandte Informationen