ไฮเบอร์เนตระหว่าง OS X และ Bootcamp Win 7


22

เป็นไปได้ไหมที่จะใช้ฟังก์ชั่นระบบไฮเบอร์เนตที่แท้จริงของ Win 7 และ OS X เพื่อสร้างการสลับระหว่างสองแบบทันที? ลองจินตนาการถึงสิ่งนี้เมื่อทำการอ่าน / เขียนภาพสลีปไปยัง SSD-3 อย่างรวดเร็ว

Hibernate-ทุจริต - แก้ไข:ถ้าเป็นไปได้ตรวจสอบให้แน่ใจว่าพาร์ทิชันที่แตกต่างกันของคุณไม่ได้เปิดใช้งานการเขียนจากแต่ละคน (เช่นทำเพื่อให้ Boot Camp Windows 7 ไม่สามารถเขียนไปยังพาร์ติชัน OS X และในทางกลับกัน) มาตรการด้านความปลอดภัยนี้จะทำให้ระบบต่าง ๆ ของคุณไม่สามารถเสียหายซึ่งกันและกันได้เมื่อระบบถูกพักไว้ในโหมดไฮเบอร์เนต

แก้ไข:ฉันรู้ว่าฉันไม่แน่ใจว่านี่เป็นวิธีที่พาร์ทิชันทำงานบนดิสก์ เคอร์เนล OS X ที่จำศีลอาจมีการอ้างอิงไปยังบล็อกบนดิสก์ซึ่งมันจะยังคงเขียนไปเมื่อมันถูกปลุกขึ้นอีกครั้ง บล็อกดิสก์แบบนี้มีอยู่ในพาร์ติชั่นหรือถูกกำหนดให้กับพาร์ติชั่นหลังจากเขียนเสร็จแล้ว? HDD และ SSD ต่างกันไหม สิ่งนี้มีผลต่อการไฮเบอร์เนต - คอร์รัปชั่นข้างต้นหรือไม่?

ตกลงกันต่อไป:

Windows 7 มีตัวเลือก "ไฮเบอร์เนต" อยู่แล้วซึ่งช่วยให้คุณสามารถบูตกลับไปที่พาร์ติชัน OS X ของคุณได้ แต่ OS X นั้นไม่ได้ให้สิ่งเดียวกัน

ด้วย OS X คุณสามารถไฮเบอร์เนตได้ด้วยการเปลี่ยนตัวแปรระบบ hibernatemode

Pre OS X 10.7

sudo pmset -a hibernatemode 2

OS X 10.7

sudo pmset -a hibernatemode 25

สิ่งนี้ทำให้ Mac ของคุณเข้าสู่โหมดไฮเบอร์เนตเมื่อคุณหลับ คุณสามารถนอนหลับด้วย:

sudo shutdown -s ตอนนี้

โอเคดีมาก ดังนั้นเราสามารถใส่ทั้ง Windows 7 และ OS X Lion เข้าสู่โหมดไฮเบอร์เนตตามความประสงค์ แต่เดี๋ยวก่อน! มีปัญหามากขึ้นในอนาคต

เมื่อคุณใส่ OS X เข้าสู่โหมดไฮเบอร์เนตระบบจะบูตกลับไปที่ OS X โดยอัตโนมัติเมื่อคุณเปิดเครื่อง Mac สิ่งนี้ทำให้เป็นไปไม่ได้ที่เราจะใช้มันเพื่อ "hotswitching" ระหว่างพาร์ติชัน

การแก้ไขเป็นไปได้:
หากคุณติดตั้งอานิสงส์โดยไม่ต้อง rEFItBlesser คุณจะได้รับอานิสงส์เมนูการบูตหลังจาก OS X จำศีล อย่างไรก็ตามใน OS X 10.7 Lion สิ่งนี้ใช้งานไม่ได้ แต่คุณได้รับหน้าจอสีดำและต้องปิดเครื่อง Mac อย่างหนัก แต่เดี๋ยวก่อน! อย่างน้อยมันก็ขัดจังหวะการบูต OS X อัตโนมัติใช่ไหม บางทีมันสามารถปรับแต่งเพิ่มเติมได้จากที่นั่น

ดังที่กล่าวไว้ใน OS X: s ก่อนหน้านี้เมนูการบู๊ต rEFIt จะเกิดขึ้นจริงหลังจากการปิดเครื่องไฮเบอร์เนต + เปิดเครื่อง วิธีนี้ช่วยให้คุณสามารถบูตพาร์ติชัน Boot Camp Windows 7 ของคุณแทน มีปัญหาที่นี่เช่นกัน เห็นได้ชัดว่าพาร์ติชัน OS X แพ้การตั้งค่าสถานะการไฮเบอร์เนตหากคุณปฏิบัติตามวิธีนี้ซึ่งหมายความว่าครั้งต่อไปที่คุณบูตเข้าสู่ OS X จะไม่ส่งคืนจากสถานะไฮเบอร์เนต แต่จะทำการเริ่มต้นใหม่ทั้งหมด ทำไมนี้
OS X ค้นหาการมีอยู่ของอิมเมจสลีปเพื่อกำหนดว่าจะตื่นจากโหมดไฮเบอร์เนตหรือเริ่มต้นใหม่ทั้งหมดหรือมีชุดตัวแปร / แฟลกระบบบางชนิดหรือไม่

สรุป

เมื่อ Win 7 เข้าสู่โหมดไฮเบอร์เนตมันจะปิดลงอย่างสมบูรณ์และคุณสามารถบูตเข้าสู่ OS X เมื่อเริ่มต้น ใน OS X อย่างไรก็ตามจำศีลบังคับให้คุณตื่นขึ้นมาใน OS X คุณสามารถแฮ็คสิ่งนี้เพื่อให้คุณได้รับอนุญาตให้เลือกพาร์ติชันสำหรับบูตหลังจาก OS X จำศีลและยังสามารถกลับมาที่ OS X ในภายหลังและปลุกจากไฮเบอร์เนต ?

เรามาดูกันว่าเราสามารถทำอะไรขึ้นมาได้บ้าง!


ดูsuperuser.com/questions/59188/does-mac-os-x-support-hibernationสำหรับการจำศีลใน OSX (= 2 ของคุณ) - โปรดทราบว่าค่าเริ่มต้นจะเป็นไปตาม 3 ของคุณตามที่คุณเห็น
user151019

ฉันลองวิธีแก้ปัญหาก่อนหน้านี้ แต่พวกเขาไม่ได้เปลี่ยนแปลงอะไรกับฉัน Mac ของฉันยังคงเข้าสู่ Safe Sleep โดยไม่คำนึงถึงการตั้งค่าที่ฉันใช้หรือถ้าฉันใช้ Deep Sleep Widget ที่กล่าวถึง มันจะกลับมาทำงานทันทีโดยไม่แสดงแถบโหลดตอนแรกซึ่งฉันคิดว่าหมายความว่าไม่เคยอยู่ในโหมดไฮเบอร์เนตจริงหรือ
วิลเล็ม

1
หลังจากที่ฉันถามคำถามเกี่ยวกับ Ask Different ฉันได้รับการบอกกล่าวว่าสาเหตุที่คุณสมบัติถูกทิ้งจาก Mac OS เป็นเพราะมันอันตรายจริง ๆ เมื่อคอมพิวเตอร์ของคุณตื่นขึ้นก็คาดว่าสภาพแวดล้อมจะเหมือนกันเมื่อเข้าสู่โหมดสลีป สมมติว่าคุณมีไฟล์เปิดอยู่บนพาร์ติชัน Windows ของคุณ, sleep Mac OS, และลบไฟล์นั้นออกจาก Windows คุณอาจจะมีปัญหา เนื่องจากความสามารถในการเรียกใช้ Windows บน Mac เป็นคุณลักษณะที่ยิ่งใหญ่ของ Intel Macs Apple อาจเลือกที่จะทำให้การจำศีลเหมือน Windows เป็นเรื่องยากที่จะปกป้องผู้ใช้มือใหม่
zneak

ฉันเสนอวิธีแก้ไขปัญหาในข้อความนี้ มองใกล้จุดเริ่มต้น
วิลเล็ม

คำถามของคุณคืออะไร ดูเหมือนว่าจะมีการร้องขอคุณสมบัติให้ Apple (?) สลับกับคำถามที่ไม่เกี่ยวข้องกัน
Daniel Beck

คำตอบ:


18

เป็นไปไม่ได้ที่จะทำสิ่งที่คุณคิด ปัญหาอยู่ที่การรวมกันอย่างแน่นหนาของเฟิร์มแวร์ของ Apple และ OS X OS X และเฟิร์มแวร์ทำงานร่วมกันเพื่อกำหนดสถานะสลีปของคอมพิวเตอร์

เมื่อ Windows จำศีลระบบจะทิ้งเนื้อหาของ RAM ไปที่ C: \ Hiberfil.sys และตั้งค่าสถานะในรีจิสทรีที่เครื่องถูกจำศีล เมื่อคุณบู๊ตเครื่อง Windows ครั้งแรกรหัสบูตจะโหลดไฟล์ BCD ซึ่งโหลดส่วนของรีจิสทรีนั้นเร็วมากในกระบวนการบู๊ตและเห็นว่าระบบนั้นจำศีล หลังจากทำการตรวจสอบสติพื้นฐานมันโหลด hiberfil.sys กลับเข้าไปในหน่วยความจำ สิ่งสำคัญที่นี่คือทั้งหมดนี้มีอยู่ในระบบแฟ้ม นี่คือสาเหตุที่คุณสามารถบูตเป็น OS X ได้อย่างอิสระจากนั้นบูตอีกครั้งกลับไปเป็น Windows และจะดำเนินการต่อจากไฟล์ไฮเบอร์เนต

เช่นเดียวกับที่ไม่เป็นจริงของ OS X เมื่อ OS X จำศีลก็จะทิ้งเนื้อหาของ RAM ไปที่ / var / vm / sleepimage เช่นเดียวกับที่ Windows ทำ แต่จะบันทึกการตั้งค่าสถานะไฮเบอร์เนตใน PRAMไม่ใช่ระบบไฟล์ (การตั้งค่าที่เรียกว่า IORegistryCurrentSleepMode หากคุณสนใจ) เมื่อคุณเปิดเครื่อง Mac อีกครั้งค่าใน PRAM จะถูกอ่านก่อนที่จะทำการบูตระบบปฏิบัติการ หากการตั้งค่าสถานะบ่งชี้ว่าระบบถูกจำศีลสิ่งแรกที่ทำคือพลิกกลับเป็นสถานะปกติ จากนั้นเฟิร์มแวร์จะบูทระบบทันทีและข้ามการตั้งค่าดิสก์เริ่มต้นและพยายามOption+ บูต คุณยังไม่ได้รับเสียงระฆังเริ่มต้น บน Mac เฟิร์มแวร์จะมีตรรกะทั้งหมดที่จำเป็นในการตรวจสอบระบบไฟล์และบูตระบบปฏิบัติการ ไม่จำเป็นต้องใช้รหัสการบูตตามที่ Windows ทำ

เมื่อคุณโยน rEF มันลงไปในส่วนผสมมันจะแทรกตัวเข้าไปในกระบวนการ มันแทนที่ปกติ /System/Library/CoreServices/boot.efi (ซึ่งเป็นบูตโหลดเดอร์ของ OS X) ด้วยไฟล์บูตโหลดเดอร์ของตัวเอง นี่คือสิ่งที่สับสนสำหรับฉันเพราะนี่คือสิ่งที่เป็นกรรมสิทธิ์ของ Apple ทั้งหมด แต่สิ่งที่สำคัญที่สุดคือเมื่อเฟิร์มแวร์ทำการบู๊ต OS X มันจะส่งผ่านข้อโต้แย้งใด ๆ ที่จำเป็นในการโหลด / var / vm / sleepimage แทนเคอร์เนลดาร์วินปกติ rEF มันทำอย่างไม่ถูกต้องกับ Lion และใหม่กว่า แต่ไม่ว่ามันจะเป็น OS X เวอร์ชั่นเก่ากว่าหรือใหม่กว่าเฟิร์มแวร์ก็พลิกบิตไฮเบอร์เนตไปแล้วก่อนที่ rEF จะโหลดขึ้นมา นี่คือเหตุผลที่การกลับมาทำงาน OS X จากโหมดไฮเบอร์เนตไม่สามารถทำได้หลังจากเปิดเครื่องครั้งแรก


ว้าว. ในที่สุดคำตอบและคำตอบที่ดี! (แม้ว่าข่าวจะเป็นเรื่องน่าเศร้า ... ) เป็นไปได้ไหมที่จะแก้ปัญหานี้ด้วยการให้ Windows ตั้งค่าสถานะ PRAM เมื่อมันเข้าสู่โหมดไฮเบอร์เนต
วิลเล็ม

หากคุณสามารถหาโปรแกรมที่ใช้ windows สำหรับการแก้ไขค่า PRAM (คล้ายกับnvramเครื่องมือของ OS X ) ฉันคิดว่าเป็นไปได้ คุณสามารถตั้งค่าให้เป็นงานที่กำหนดเวลาไว้เพื่อทริกเกอร์เมื่อเวิร์กสเตชันเข้าสู่โหมดสลีป แต่ฉันไม่รู้ว่ามีโปรแกรมดังกล่าวอยู่หรือไม่ ถ้าคุณเจอคนที่ฉันชอบที่จะได้ยินเกี่ยวกับมัน
Wes Sayeed

บางทีคนที่นี่ใน Stackoverflow สนใจเขียนหนึ่งถ้าเราเน้นมัน ฉันเชื่อว่าความเป็นไปได้ของการสลับ "ทันที" ระหว่าง OS X และ Windows เป็นที่ต้องการโดยหลายคน
วิลเล็ม

1
ฉันโพสต์คำถามที่นี่เพราะฉันก็สนใจเช่นกัน มันอาจเป็นไปไม่ได้แม้ว่า เฟิร์มแวร์มีโมดูลความเข้ากันได้สนับสนุน (CSM) ซึ่งจำลองพีซี BIOS เพื่อให้ Windows สามารถบูตได้ Windows อาจไม่สามารถดู CSM นั้นได้ ความสว่างหน้าจอของคุณความสว่างแบ็คไลท์ของคีย์บอร์ดและระดับเสียงจะบันทึกลงใน PRAM เช่นกัน แต่ฉันสังเกตเห็นเมื่อฉันเปลี่ยนสิ่งเหล่านั้นจาก Windows พวกเขาจะไม่ได้รับการเก็บรักษาไว้ในการรีบูตครั้งถัดไปตามที่พวกเขาทำเมื่อฉันเปลี่ยนพวกเขาจาก OS X.
Wes Sayeed

เอาล่ะดีหวังว่ามันจะเป็นไปได้ ฉันยอมรับคำตอบของคุณในระหว่างนี้ แสดงความคิดเห็นที่นี่ถ้าเราพบอะไร
วิลเล็ม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.