Ruhezustand zwischen OS X und Bootcamp Win 7

22

Ist es möglich, die wahren Funktionen des Ruhezustands von Win 7 und OS X zu nutzen, um eine Art sofortiges Umschalten zwischen den beiden zu erreichen? Stellen Sie sich dies vor, wenn Sie die Ruhezustandsbilder auf eine schnelle SATA-3-SSD lesen / schreiben.

Hibernate-Corruption-Fix: Wenn dies möglich ist, stellen Sie sicher, dass Ihre verschiedenen Partitionen nicht gegenseitig schreibgeschützt sind. (Stellen Sie z. B. sicher, dass Boot Camp Windows 7 nicht in die OS X-Partition schreiben kann und umgekehrt). Diese Sicherheitsmaßnahme sollte es Ihren verschiedenen Systemen unmöglich machen, sich gegenseitig zu beschädigen, wenn ein System in den Ruhezustand versetzt wird.

Bearbeiten: Ich habe festgestellt, dass ich nicht sicher bin, wie Partitionen auf einer Festplatte funktionieren. Der in den Ruhezustand versetzte OS X-Kernel kann Verweise auf Blöcke auf der Festplatte enthalten, auf die beim erneuten Aufwecken weitergeschrieben wird. Befinden sich solche Plattenblöcke in einer Partition oder sind sie nach dem Beschreiben einer Partition zugeordnet? Ist es anders auf HDD und SSD? Betrifft dies die oben genannte Fehlerbehebung im Ruhezustand?

Ok, lass uns weitermachen:

Windows 7 verfügt bereits über die Option "Ruhezustand", mit der Sie zurück zu Ihrer OS X-Partition booten können, OS X bietet jedoch nicht genau das Gleiche.

Unter OS X ist es möglich, den Ruhezustand durch Ändern der Systemvariablen für den Ruhezustand zu aktivieren.

Pre OS X 10.7

sudo pmset -a hibernatemode 2

OS X 10.7

sudo pmset -a hibernatemode 25

Dadurch wird Ihr Mac in den Ruhezustand versetzt, wenn Sie ihn in den Ruhezustand versetzen. Sie können es schlafen legen mit:

sudo shutdown -s jetzt

Ok, soweit so gut. So können wir sowohl Windows 7 als auch OS X Lion nach Belieben in den Ruhezustand versetzen. Aber warte! Es liegen noch weitere Probleme vor uns.

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

Mögliche Fehlerbehebungen:
Wenn Sie rEFIt ohne rEFItBlesser installieren , wird nach dem Ruhezustand von OS X das rEFIt-Startmenü angezeigt. Unter OS X 10.7 Lion funktioniert dies jedoch nicht vollständig. Stattdessen wird ein schwarzer Bildschirm angezeigt und Sie müssen Ihren Mac hart herunterfahren. Aber hey! Zumindest unterbricht es den automatischen Start von OS X, oder? Vielleicht kann es von dort weiter optimiert werden.

Wie bereits in früheren OS X-Versionen erwähnt, wird das rEFIt-Startmenü nach dem Herunterfahren des Ruhezustands und dem Einschalten des Computers angezeigt. So können Sie zB stattdessen Ihre Boot Camp Windows 7-Partition booten. Aber auch hier gibt es Probleme. Anscheinend verliert die OS X-Partition ihr Ruhezustands-Flag, wenn Sie diese Methode befolgen. Dies bedeutet, dass sie beim nächsten Start von OS X nicht aus dem Ruhezustand zurückkehrt. Stattdessen wird ein sauberer Start durchgeführt. Warum ist das?
Sucht OS X nach einem Sleep-Image, um festzustellen, ob es aus dem Ruhezustand aufwacht oder einen sauberen Start ausführt, oder ist 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 erzwingt der Ruhezustand jedoch das Aufwecken in OS X. Können Sie dies hacken, damit Sie nach dem Ruhezustand von OS X die Startpartition auswählen und später wieder zu OS X zurückkehren und es aus dem Ruhezustand aktivieren können? ?

Mal sehen, was wir uns gemeinsam einfallen lassen können!

Willem
quelle
siehe superuser.com/questions/59188/does-mac-os-x-support-hibernation für überwinternde in OSX (= Ihre 2) - Hinweis : Der Standard ist wie pro Ihre 3 , wie Sie gesehen haben
user151019
Ich habe diese Lösungen schon einmal ausprobiert, aber sie ändern nichts für mich. Mein Mac wird unabhängig von der von mir verwendeten Einstellung oder der Verwendung des erwähnten Deep Sleep-Widgets weiterhin in den Energiesparmodus versetzt. Es wird sofort aktiviert, ohne dass zuerst die Ladeleiste angezeigt wird. Ich gehe davon aus, dass sich das Gerät nie im realen Ruhezustand befand.
Willem
1
Nachdem ich bei Ask Different meine Frage gestellt hatte, wurde mir mitgeteilt, dass die Funktion unter Mac OS eingestellt wurde, weil sie tatsächlich gefährlich ist. Wenn Ihr Computer aufwacht, wird erwartet, dass die Umgebung mit der Umgebung identisch ist, in der er in den Energiesparmodus geschaltet wurde. Angenommen, Sie haben eine Datei auf Ihrer Windows-Partition geöffnet, schlafen Mac OS und löschen diese Datei aus Windows. Sie könnten in Schwierigkeiten geraten. Da die Möglichkeit, Windows auf einem Mac auszuführen, ein großes Merkmal von Intel-Macs ist, hat Apple wahrscheinlich beschlossen, den Windows-ähnlichen Ruhezustand so zu gestalten, dass Anfänger nur schwer geschützt werden können.
Zneak
Ich habe in diesem Text eine Lösung für dieses Problem vorgeschlagen. Schauen Sie sich den Anfang an.
Willem
Was ist deine Frage nochmal? Es sieht aus wie eine Feature-Anfrage an Apple (?) Mit Fragen, die nichts miteinander zu tun haben.
Daniel Beck

Antworten:

18

Es ist nicht möglich, dies so zu tun, wie Sie denken. Das Problem liegt in der engen Integration von Apples Firmware und OS X. OS X und Firmware arbeiten zusammen, um den Ruhezustand des Computers zu bestimmen.

Wenn Windows in den Ruhezustand wechselt, wird der Inhalt des Arbeitsspeichers in C: \ Hiberfil.sys gespeichert und ein Flag in der Registrierung gesetzt, das den Computer in den Ruhezustand versetzt. Wenn Sie einen Windows-Computer zum ersten Mal starten, lädt der Startsektorcode die BCD-Datei, die diesen Teil der Registrierung sehr früh im Startprozess lädt, und stellt fest, dass das System im Ruhezustand ist. Nach einer grundlegenden Überprüfung der Integrität wird hiberfil.sys wieder in den Speicher geladen. Wichtig hierbei ist, dass all dies im Dateisystem enthalten ist. Aus diesem Grund können Sie nach Belieben unter OS X starten und anschließend wieder unter Windows. Die Ruhezustandsdatei wird dann weiterhin verwendet.

Dasselbe gilt nicht für OS X. Wenn OS X in den Ruhezustand wechselt, wird der Inhalt des Arbeitsspeichers auf die gleiche Weise wie bei Windows nach / var / vm / sleepimage kopiert. Es wird jedoch das Ruhezustandsflag im PRAM und nicht im Dateisystem gespeichert (die Einstellung heißt IORegistryCurrentSleepMode, wenn Sie interessiert sind). Wenn Sie einen Mac wieder einschalten, werden die Werte im PRAM gelesen, bevor überhaupt versucht wird, das Betriebssystem zu starten. Wenn das Flag angibt, dass das System in den Ruhezustand versetzt wurde, wird es zunächst wieder in den normalen Status versetzt. Die Firmware bootet dann sofort das System und ignoriert die OptionStartdisketteneinstellung und alle Versuche, + zu booten. Sie bekommen nicht einmal ein Startsignal. Auf einem Mac enthält die Firmware die gesamte Logik, die zum Überprüfen des Dateisystems und zum Starten des Betriebssystems erforderlich ist. Es benötigt keinen Bootcode wie Windows.

Wenn Sie rEFIt in den Mix werfen, fügt es sich in den Prozess ein. Es ersetzt die normale Datei /System/Library/CoreServices/boot.efi (das ist der Bootloader von OS X) durch eine eigene Bootloader-Datei. Dies ist der Punkt, an dem die Dinge für mich unscharf werden, da dies alles Apple-eigene Dinge sind, aber das Fazit ist, 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. Bei Lion und höher funktioniert dies nicht ordnungsgemäß. Unabhängig davon, ob es sich um eine ältere oder eine neuere Version von OS X handelt, hat die Firmware das Ruhezustand-Bit bereits gekippt, bevor rEFIt überhaupt geladen wird. Aus diesem Grund kann OS X nach dem ersten Einschalten nicht mehr aus dem Ruhezustand wiederhergestellt werden.

Wes Sayeed
quelle
Wow. Endlich eine Antwort und noch eine gute! (Auch wenn die Nachricht etwas traurig ist ...) Wäre es möglich, dieses Problem zu lösen, indem Windows das PRAM-Flag setzt, während es in den Ruhezustand wechselt?
Willem
Wenn Sie ein Windows-basiertes Programm zum Ändern von PRAM-Werten finden könnten (ähnlich dem OS X- nvramTool), würde ich das für möglich halten. Sie können ihn als geplanten Task festlegen, der ausgelöst wird, wenn die Arbeitsstation in den Ruhezustand wechselt. Ich weiß aber nicht, ob es ein solches Programm gibt. Wenn Sie auf eine stoßen, würde ich gerne davon hören.
Wes Sayeed
Vielleicht ist jemand hier auf Stackoverflow daran interessiert, einen zu schreiben, wenn wir ihn hervorheben. Ich glaube, dass die Möglichkeit, "sofort" zwischen OS X und Windows zu wechseln, von vielen nachgefragt wird.
Willem
1
Ich habe die Frage hier gepostet , weil ich auch interessiert bin. Möglicherweise ist dies jedoch nicht möglich. Die Firmware enthält ein Compatibility Support Module (CSM), das ein PC-BIOS emuliert, damit Windows booten kann. Windows kann diesen CSM möglicherweise nicht durchschauen. Die Bildschirmhelligkeit, die Hintergrundbeleuchtung der Tastatur und die Lautstärke werden ebenfalls im PRAM gespeichert. Aber wenn ich diese Dinge von Windows aus ändere, werden sie beim nächsten Neustart nicht so beibehalten, wie wenn ich sie von OS X aus ändere.
Wes Sayeed,
Okay schön, hoffen wir, dass es möglich ist. Ich akzeptiere Ihre Antwort in der Zwischenzeit. Lassen Sie uns hier einen Kommentar abgeben, wenn wir etwas finden.
Willem