2012년 4월 3일 화요일

osx 부팅 과정에 대한 스크랩

http://x86osx.com/bbs/view.php?id=osxtips&no=2452

물리적 하드마다 MBR(Master Boot Recoder)은 하나이지만,
파티션마다 부트섹터 한 개씩 가지고 있다.
부트로더를 설치하기 위해 boot0, boot1h, boot 3개가 파일이 필요하다.

1. MBR에 설치된 ‘boot0’을 읽는다.
2. ‘boot0’에 의해 ‘boot1h’이 설치된 OSX파티션의 부트섹터를 읽는다.
3. ‘boot1h’에 의해 ‘boot’가 설치된 EFI파티션을 읽는다.
이때 EFI파티션 안에 Boot이 없다면 에러가 발생되고 부팅이 진행되지 않는다.(boot:0 에러)
EFI파티션이 없다면 ‘boot1h’가 OSX파티션의 root에 있는 boot를 읽는다.
이때 루트에 ‘boot’가 없다면 부팅이 진행되지 않는다.
5. ‘boot’를 읽었다면 부트로더 화면이 나온다. (F8 누르면 보는 화면)
6. 이때 부팅하고 하는 파티션을 선택한다. (사용자의 의해)
7. ‘boot’(부트로더)를 통해 우리가 부팅하고자 선택한 볼륨 또는 파티션에 EFI파티션이 있다면 EFI파티션 안에 /extra안에 있는
com.apple.Boot.plist, smbios.plist, dsdt.aml, /extensions 에 있는 kexts를 읽는다.
EFI파티션이 없다면 선택한 파티션 root/extra안에 있는
com.apple.Boot.plist, smbios.plist, dsdt.aml, /extensions 에 있는 kexts를 읽는다.
선택한 볼륨 또는 파티션에 EFI파티션도 /extra도 없다면 부트로더가 설치된 미디어(하드, CD, USB) 파티션에 있는 /extra의 com.apple.Boot.plist, smbios.plist, dsdt.aml 과 /extensions 에 있는 kexts를 읽는다.(이런경우가  BOOT132 또는 부트로더를 설치한 USB) 만약 이곳에도 /extra가 없다면 fakesmc.kext를 못 읽은 상태로 OSX로 진입하기 때문에 패닉이 일어난다.
8. OSX으로 진입한다.

댓글 없음:

댓글 쓰기