Hibernasi antara OS X dan Bootcamp Win 7

22

Apakah mungkin menggunakan fungsionalitas sistem hibernate yang sebenarnya dari Win 7 dan OS X untuk membuat semacam peralihan instan di antara keduanya? Bayangkan ini ketika membaca / menulis gambar tidur ke SSD SATA-3 cepat.

Hibernate-corruption-fix: Jika ini dimungkinkan, pastikan bahwa partisi Anda yang berbeda tidak diaktifkan dari satu sama lain. (mis. membuatnya agar Boot Camp Windows 7 tidak dapat menulis ke partisi OS X dan sebaliknya). Tindakan keamanan ini seharusnya membuat sistem Anda yang berbeda tidak dapat saling merusak ketika ada yang di-hibernasi.

Sunting: Saya menyadari bahwa saya tidak yakin ini adalah cara kerja partisi pada disk. Kernel OS X yang hibernasi dapat memiliki referensi ke blok pada disk yang akan terus ditulis ketika dibangunkan kembali. Apakah blok disk seperti ini terdapat di dalam partisi atau mereka ditugaskan ke partisi setelah ditulis? Apakah berbeda pada HDD dan SSD? Apakah ini memengaruhi perbaikan hibernate-korupsi di atas?

Oke, mari kita lanjutkan:

Windows 7 sudah memiliki opsi "Hibernate" yang memungkinkan Anda untuk boot kembali ke partisi OS X Anda, tetapi OS X tidak persis menawarkan hal yang sama.

Dengan OS X dimungkinkan untuk melakukan hibernasi dengan mengubah variabel sistem hibernatemode.

Pra OS X 10.7

sudo pmset -a hibernatemode 2

OS X 10.7

sudo pmset -a hibernatemode 25

Ini membuat Mac Anda menjadi hibernate ketika Anda menidurkannya. Anda dapat menidurkannya dengan:

sudo shutdown -s sekarang

Ok, sejauh ini bagus. Jadi kita bisa menempatkan Windows 7 dan OS X Lion ke hibernasi sesuka hati. Tapi tunggu! Masih ada banyak masalah di depan.

Ketika Anda memasukkan OS X ke hibernasi, OS secara otomatis akan boot kembali ke OS X saat Anda menyalakan Mac lagi. Ini membuat tidak mungkin bagi kita untuk menggunakannya untuk "hotswitching" di antara partisi.

Kemungkinan perbaikan:
Jika Anda menginstal mereparasi tanpa rEFItBlesser Anda akan mendapatkan menu mereparasi booting setelah OS X hibernasi. Namun pada OS X 10.7 Lion, ini tidak sepenuhnya berfungsi, sebagai gantinya Anda mendapatkan layar hitam dan harus mematikan Mac dengan susah payah. Tapi hey! Setidaknya itu mengganggu boot OS X otomatis, kan? Mungkin bisa di-tweak lebih jauh dari sana.

Seperti yang disebutkan pada OS X sebelumnya: menu boot ISI benar-benar muncul setelah hibernasi shutdown + power on. Ini memungkinkan Anda untuk mem-boot partisi Boot Camp Windows 7 Anda. Ada masalah di sini juga. Rupanya partisi OS X kehilangan bendera hibernasinya jika Anda mengikuti metode ini, yang berarti bahwa saat berikutnya Anda boot ke OS X, partisi tersebut tidak akan kembali dari status hibernasinya. Sebaliknya itu akan melakukan startup yang bersih. Kenapa ini?
Apakah OS X mencari keberadaan gambar tidur untuk menentukan apakah akan bangun dari hibernasi atau melakukan awal yang bersih atau apakah ada semacam set variabel sistem / flag yang ditetapkan?

Ringkasan

Ketika Win 7 masuk ke hibernasi itu dimatikan sepenuhnya dan Anda kemudian dapat boot ke OS X saat startup. Namun pada OS X, hibernasi memaksa Anda untuk bangun ke OS X. Dapatkah Anda meretas ini sehingga Anda diizinkan untuk memilih partisi boot setelah OS X hibernasi dan masih dapat kembali lagi ke OS X dan membangunkannya dari hibernasi ?

Mari kita lihat apa yang bisa kita kumpulkan bersama!

Willem
sumber
lihat superuser.com/questions/59188/does-mac-os-x-support-hibernation untuk hibernasi di OSX (= 2 Anda) - perhatikan defaultnya adalah sesuai 3 yang Anda lihat
user151019
Saya sudah mencoba solusi itu sebelumnya tetapi tidak mengubah apa pun untuk saya. Mac saya masih masuk ke Safe Sleep terlepas dari pengaturan apa yang saya gunakan atau jika saya menggunakan Deep Sleep Widget yang disebutkan. Itu bangun langsung tanpa menunjukkan bilah pemuatan pada awalnya yang saya asumsikan berarti tidak pernah dalam mode hibernasi nyata?
Willem
1
Setelah saya menanyakan pertanyaan saya pada Ask Different, saya diberitahu bahwa alasan mengapa fitur itu dihapus dari Mac OS adalah karena itu sebenarnya berbahaya. Ketika komputer Anda bangun, itu mengharapkan lingkungan menjadi identik dengan ketika pergi tidur. Misalkan Anda memiliki file yang terbuka di partisi Windows Anda, tidur Mac OS, dan hapus file itu dari Windows. Anda mungkin mengalami beberapa masalah. Karena kemampuan untuk menjalankan Windows pada Mac adalah fitur besar Intel Mac, Apple mungkin memilih untuk membuat hibernasi seperti Windows sulit untuk melindungi pengguna pemula.
zneak
Saya sebenarnya mengusulkan solusi untuk masalah itu dalam teks ini. Lihatlah di dekat awal.
Willem
Apa pertanyaanmu lagi? Sepertinya permintaan fitur ke Apple (?) Diselingi dengan pertanyaan yang tidak terkait satu sama lain.
Daniel Beck

Jawaban:

18

Tidak mungkin melakukan ini dengan cara yang Anda pikirkan. Masalahnya terletak pada integrasi ketat firmware Apple dan OS X. OS X dan firmware bekerja satu sama lain untuk menentukan kondisi tidur komputer.

Ketika Windows hibernasi, ia membuang isi RAM ke C: \ Hiberfil.sys dan menetapkan tanda di registri bahwa mesin sedang hibernasi. Ketika Anda pertama kali mem-boot mesin Windows, kode sektor boot memuat file BCD, yang memuat bagian registri tersebut sangat awal dalam proses booting dan melihat bahwa sistem hibernasi. Setelah melakukan pemeriksaan kewarasan dasar, ini memuat hiberfil.sys kembali ke memori. Yang penting di sini adalah bahwa semua ini terkandung dalam sistem file. Inilah sebabnya mengapa Anda dapat dengan bebas mem-boot ke OS X, lalu mem-boot kembali ke Windows dan itu akan terus melanjutkan dari file hibernasi.

Hal yang sama tidak berlaku untuk OS X. Ketika OS X hibernasi, ia membuang isi RAM ke / var / vm / sleepimage dengan cara yang sama seperti yang dilakukan Windows. Tapi itu menyimpan bendera hibernasi di PRAM , bukan sistem file (pengaturannya disebut IORegistryCurrentSleepMode jika Anda tertarik). Ketika Anda menyalakan Mac kembali, nilai-nilai dalam PRAM dibaca sebelum upaya bahkan dibuat untuk boot ke OS. Jika tanda menunjukkan bahwa sistem hibernasi, hal pertama yang dilakukan adalah membalikkannya kembali ke status normal. Firmware kemudian segera mem-boot sistem dan mengabaikan preferensi Startup Disk dan segala upaya untuk Option+ mem-boot. Anda bahkan tidak mendapatkan lonceng startup. Pada Mac, firmware berisi semua logika yang diperlukan untuk memeriksa sistem file dan mem-boot OS. Tidak perlu kode boot seperti Windows.

Saat Anda melempar RESE ke dalam campuran, itu memasukkan dirinya ke dalam proses. Ini menggantikan /System/Library/CoreServices/boot.efi normal (yang merupakan pemuat boot OS X), dengan file pemuat bootnya sendiri. Di sinilah segalanya menjadi kabur bagi saya karena ini semua adalah barang milik Apple, tetapi intinya adalah ketika firmware mem-boot OS X, ia melewati argumen apa pun yang diperlukan untuk memuat / var / vm / sleepimage alih-alih kernel Darwin normal. rEFIt tidak melakukan ini dengan benar dengan Lion dan yang lebih baru. Tetapi terlepas dari apakah itu versi OS X yang lebih lama atau yang lebih baru, firmware telah membalik bit hibernasi sebelum bahkan bahkan memuat. Inilah sebabnya mengapa melanjutkan OS X dari hibernate tidak lagi dimungkinkan setelah power-on pertama.

Wes Sayeed
sumber
Wow. Akhirnya jawaban dan jawaban bagus! (Walaupun beritanya agak menyedihkan ...) Mungkinkah ini diselesaikan dengan meminta Windows mengatur flag PRAM saat memasuki hibernasi?
Willem
Jika Anda dapat menemukan program berbasis windows untuk memodifikasi nilai PRAM (mirip dengan nvramalat OS X ) saya pikir itu akan mungkin. Anda bisa mengaturnya sebagai tugas yang dijadwalkan untuk memicu ketika workstation tidur. Tapi saya tidak tahu apakah ada program seperti itu. Jika Anda menemukan satu, saya ingin mendengarnya.
Wes Sayeed
Mungkin seseorang di sini di Stackoverflow tertarik untuk menulis satu jika kita menyorotnya. Saya percaya kemungkinan beralih "langsung" antara OS X dan Windows dicari oleh banyak orang.
Willem
1
Saya memposting pertanyaan di sini karena saya juga tertarik. Mungkin itu tidak mungkin. Firmware menyediakan Modul Dukungan Kompatibilitas (CSM) yang mengemulasi PC BIOS sehingga Windows dapat melakukan booting. Windows mungkin tidak dapat melihat melalui CSM itu. Kecerahan layar Anda, kecerahan lampu latar keyboard, dan volume audio juga menghemat PRAM. Tetapi saya perhatikan ketika saya mengubah hal-hal itu dari Windows, mereka tidak dapat disimpan pada reboot berikutnya seperti yang saya lakukan ketika saya mengubahnya dari OS X.
Wes Sayeed
Baiklah, mari kita berharap itu mungkin. Sementara itu, saya menerima jawaban Anda. Mari berkomentar di sini jika kita menemukan sesuatu.
Willem