ไฮเบอร์เนตระหว่าง 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.