OS X와 ​​Bootcamp Win 7 간 최대 절전 모드

OS X와 ​​Bootcamp Win 7 간 최대 절전 모드

Win 7과 OS X의 진정한 최대 절전 시스템 기능을 사용하여 둘 사이를 즉시 전환하는 것이 가능합니까? 빠른 SATA-3 SSD에서 절전 이미지를 읽고 쓸 때 이것을 상상해 보십시오.

최대 절전 모드 손상 수정:이것이 가능하다면 서로 다른 파티션이 서로 쓰기 가능하지 않은지 확인하십시오. (예: Boot Camp Windows 7이 OS X 파티션에 쓸 수 없도록 하거나 그 반대의 경우도 마찬가지). 이 안전 조치를 사용하면 최대 절전 모드에 있을 때 서로 다른 시스템이 서로 손상되는 것을 방지할 수 있습니다.

편집하다:나는 이것이 디스크에서 파티션이 작동하는 방식인지 확신할 수 없다는 것을 깨달았습니다. 최대 절전 모드에 있는 OS X 커널은 다시 깨어날 때 계속 쓸 디스크의 블록에 대한 참조를 가질 수 있습니다. 이와 같은 디스크 블록이 파티션 내에 포함되어 있습니까? 아니면 기록된 후 파티션에 할당됩니까? HDD와 SSD에서 다른가요? 이것이 위의 최대 절전 모드 손상 수정에 영향을 줍니까?

좋아, 다음으로 넘어가자:

Windows 7에는 OS X 파티션으로 다시 부팅할 수 있는 "최대 절전 모드" 옵션이 이미 있지만 OS X에서는 동일한 기능을 제공하지 않습니다.

OS X에서는 hibernatemode 시스템 변수를 변경하여 최대 절전 모드로 전환할 수 있습니다.

OS X 10.7 이전

sudo pmset -a 최대 절전 모드 2

OS X 10.7

sudo pmset -a 최대 절전 모드 25

이렇게 하면 Mac을 잠자기 상태로 전환할 때 Mac이 최대 절전 모드로 전환됩니다. 다음을 사용하여 잠자기 상태로 만들 수 있습니다.

sudo 종료 -s 지금

좋아, 지금까지는 아주 좋았어. 따라서 우리는 Windows 7과 OS X Lion을 모두 최대 절전 모드로 전환할 수 있습니다. 하지만 기다려! 앞으로 더 많은 문제가 있습니다.

OS X를 최대 절전 모드로 전환하면 Mac 전원을 다시 켜면 자동으로 OS X로 다시 부팅됩니다. 이로 인해 파티션 간의 "핫 스위칭"에 이를 사용할 수 없습니다.

가능한 수정 사항:
설치하면수리rEFItBlesser가 없으면 OS X 최대 절전 모드 후에 rEFIt 부팅 메뉴가 표시됩니다. 그러나 OS X 10.7 Lion에서는 이것이 완전히 작동하지 않고 대신 검은색 화면이 나타나며 Mac을 강제 종료해야 합니다. 하지만 이봐! 적어도 자동 OS X 부팅을 방해합니다. 그렇죠? 어쩌면 거기에서 더 조정될 수도 있습니다.

이전 OS X에서 언급했듯이 rEFIt 부팅 메뉴는 실제로 최대 절전 모드 종료 + 전원 켜기 후에 나타납니다. 예를 들어 Boot Camp Windows 7 파티션을 대신 부팅할 수 있습니다. 하지만 여기에도 문제가 있습니다. 이 방법을 따르면 OS X 파티션은 최대 절전 모드 플래그를 잃게 됩니다. 이는 다음에 OS X로 부팅할 때 최대 절전 모드 상태에서 돌아오지 않는다는 의미입니다. 대신 클린 스타트업을 수행합니다.왜 이런거야?
OS X은 최대 절전 모드에서 깨어날지 아니면 새로 시작할지를 결정하기 위해 절전 이미지의 존재를 찾나요? 아니면 일종의 시스템 변수/플래그가 설정되어 있나요?

요약

Win 7이 최대 절전 모드로 전환되면 완전히 종료되며 시작 시 OS X로 부팅할 수 있습니다. 그러나 OS X에서는 최대 절전 모드로 인해 강제로 OS X로 깨어나게 됩니다. OS X가 최대 절전 모드로 전환된 후 부팅 파티션을 선택하고 나중에 OS X로 돌아가서 최대 절전 모드에서 깨울 수 있도록 이를 해킹할 수 있습니까? ?

우리가 함께 무엇을 생각해 낼 수 있는지 봅시다!

답변1

당신이 생각하는 방식으로는 이것을 할 수 없습니다. 문제는 Apple의 펌웨어와 OS X의 긴밀한 통합에 있습니다. OS X와 ​​펌웨어는 서로 협력하여 컴퓨터의 절전 상태를 결정합니다.

Windows가 최대 절전 모드에 들어가면 RAM의 내용을 C:\Hiberfil.sys에 덤프하고 레지스트리에 시스템이 최대 절전 모드라는 플래그를 설정합니다. Windows 시스템을 처음 부팅하면 부팅 섹터 코드가 BCD 파일을 로드합니다. 이 파일은 부팅 프로세스 초기에 레지스트리의 해당 부분을 로드하고 시스템이 최대 절전 모드인지 확인합니다. 기본적인 온전성 검사를 수행한 후 hiberfil.sys를 메모리에 다시 로드합니다. 여기서 중요한 것은 이 모든 것이 파일 시스템 내에 포함되어 있다는 것입니다. 이것이 바로 OS X로 자유롭게 부팅한 다음 Windows로 다시 부팅하면 최대 절전 모드 파일에서 계속 재개될 수 있는 이유입니다.

OS X의 경우에도 마찬가지입니다. OS X가 최대 절전 모드로 전환되면 Windows와 동일한 방식으로 RAM의 내용을 /var/vm/sleepimage에 덤프합니다. 하지만 최대 절전 모드 플래그는 저장됩니다.유모차에서, 파일 시스템이 아닙니다(관심 있는 경우 설정을 IORegistryCurrentSleepMode라고 함). Mac을 다시 켜면 OS로 부팅을 시도하기 전에 PRAM의 값을 읽습니다. 플래그가 시스템이 최대 절전 모드임을 나타내면 가장 먼저 하는 일은 시스템을 다시 정상 상태로 되돌리는 것입니다. 그런 다음 펌웨어는 즉시 시스템을 부팅하고 시동 디스크 기본 설정과 Option+부팅 시도를 무시합니다. 시작 신호음도 들리지 않습니다. Mac의 경우 펌웨어에는 파일 시스템을 검사하고 OS를 부팅하는 데 필요한 모든 로직이 포함되어 있습니다. Windows처럼 부팅 코드가 필요하지 않습니다.

rEFIt을 믹스에 넣으면 프로세스에 스스로 삽입됩니다. 이는 일반 /System/Library/CoreServices/boot.efi(OS X의 부트 로더)를 자체 부트 로더 파일로 대체합니다. 이것은 모두 Apple 독점 항목이기 때문에 상황이 모호해집니다. 그러나 결론은 펌웨어가 OS X를 부팅할 때 일반 Darwin 커널 대신 /var/vm/sleepimage를 로드하는 데 필요한 모든 인수를 전달한다는 것입니다. rEFIt은 Lion 이상에서는 이 작업을 제대로 수행하지 않습니다. 그러나 이전 버전의 OS X인지 최신 버전인지에 관계없이 펌웨어는 rEFIt이 로드되기 전에 이미 최대 절전 모드 비트를 전환했습니다. 이것이 바로 전원을 처음 켠 후에는 OS X를 최대 절전 모드에서 다시 시작할 수 없는 이유입니다.

관련 정보