EFI 파티션을 이용한 리테일 레퍼드 설치 따라하기 (번역!)

December 11,2008                      hit:(8469)

다음은 삽질을 대비하고 있 는초보들을 위한 번역입니다. 제가 너무나 부족한 초짜이고 앞으로 시도할 삽질이기 때문에 미리 준비차원에서 번역정리를 해봤습니다. 원문은 insanelymac.org의 munky님 게재한 것이고 허가없이 번역했습니다. 이해하시겠죠!(http://forum.insanelymac.com/index.php?showtopic=127330 )약간의 의역도 있지만 가급적 원문에 충실했습니다. 어려운 내용이었지만 원문자체가 초보들의 이해를 돕는 뜻이 담겨있어 번역을 해본 것입니다

사실 뒷북니입다. NIKY 님이 지난 9월 소개해주셨죠. (http://x86osx.com/bbs/view.php?id=freeboard&no=11027&ksn=1&kss=1&ksc=0&kst=1&ksm=1&kw=efi%20%C6%C4%C6%BC%BC%C7) 최근엔 드라마님께서 가장최신 메인보드인 X58 칩셋 해킨을 위한 방편으로 일러준 정보입니다.( http://x86osx.com/bbs/view.php?id=osxtips&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=1)

미친맥사이트의 튜토리얼 (Genius Bar) 내에서도 현재 가장 회자되는 이슈이며 이 글을 보면 boot132 방식 보다 EFI 파티션을 이용한 리테일 설치야말로 가장 완벽에 가까운 ‘해킨토시’란 설명이 나옵니다. 이쯤되면 도전해 볼만하죠. 하지만 게시자인 munky님도 한시적인 방법임을 분명히 하고 있습니다. 카멜레온팀이 만들고 있는 새로운 부트로더가 발표될까지만… 이라고 했습니다

몇번 읽어보니까 삽질 가이드이기도 하지만 모르고 지냈던 재미난 정보도 담겨있고 해서 번역을 했습니다. 따라서 질문은 피하겠습니다. 하지만 오역 지적에 대해선 고치도록 하겠습니다. 100% 이해하고 정리한게 아니라서요. 좀 민망합니다. 보통 이런 가이드는 고수님들이 해주시는 것을 따라가는 건데 초짜인 제가 감히 해봤습니다. 그냥 봐주세요...ㅎㅎ.
(원문에도 나오지만 먼저 이 가이드는 반드시 Boot132로 리테일 레퍼드 디비디를 설치한 해킨에 만해당하는 사항임을 밝힙니다!!! 또 원문이 처음 나오고 계속 업데이트된 것임을 알립니다.)

------------------------------------------------
by Munky

*** 다음 설치 가이드 내용은 최신버젼의 “카멜레온” 이 나옴으로써 그 목적을 다하게 되며 그까때지만 사용할 수 있는 한시적인 부트로더 설치법으로 생각해 주십시요. Turbo, Dense, dfe, zef 그리 고 카멜레온 팀에 감사를 드립니다.

LATEST UPDATES: 최신 업데이트 내용

- V6에서는 EFI 파티션이 아니라 root 파티션에서 DSDT.ami를 찾았습니다. V6.1은 이 부분을 고쳤습니다.
-10.5.6을 대비해서 DSDT override patch를 포함시켰습니다.
-소스코드를 첨부합니다. 이 작업은 99% dfe, turbo, zef and 카멜레온 팀의 앞선 노고에 의 가능했음을 밝힙니다.

CHANGE LOG : 버젼 수정 과정 정리

-V6.1은 V6에서 EFI partition이 아니라 root partition에서 DSDT.aml 파일을 찾던 버그를 수정했습니다.
-V6는 새로운 카멜레온이 릴리즈될 때까지 사용하게될 한시적 과정입니다. 10.5.6의 등장을 대비한 것이기도하죠. EFI partition의 루트에 있는 DSDT.aml 파일을 지원하는 것입니다.
-V5.1은 패키지 작업의 에러를 수정한 것입니다. V5에서 ‘boot’ 파일을 V5 버젼으로 만든것이었지만 ‘voot-turbo-munky.bin’ 파일은 여전히 V4 파일이었습니다.
-V5은 카멜레온으로부터 FSB 디텍스 코드를 업데이트 했습니다. 또 기본적인 듀얼부팅이 가능해졌습니다. 부팅시 다윈 부트 프롬프트에서 esc키를 치고 81 또는 83 등을 입력하는 것으로 두번째 하드나 세번째 하드로의 부팅이 가능해졌습니다.
-V4는 Jmicron ATA를 지원합니다.
-V3는 EFI 파티션에서 Boot plist 를 지원합니다.
-V2는 com.apple.boot.plist에서 EFI Strings로 알려진 devices-properties를 지원합니다.

다시한번 카메레온 팀에 감사를 표합니다. 또 def의 부트132 로더는 우리에게 새로운 세계를 열여 줬습니다. 단순 부팅 장치로 리테일 레퍼드 디비디의 설치를 가능케 했다는 것은 해킨토시에 획기적인 일이 아닐 수 없습니다. 그 덕에 SSE2 이상의 인텔칩이 들어간 시스템에서도 리테일 레퍼드 설치가 가능해진 것입니다.

하지만 상당수가 이 사실의 중요성을 간과하고 있습니다. 단순히 그냥 ‘아, 리테일로 설치?…그렇게 도할 수 있구나, 괜찮은데…그냥 해킹하지 뭐…’하면서 다시 ‘/System/Library/Extensions…’을 통한 삽질로 들어갑니다.

난 괜찮아 하는 생각은 잘못된 접근법입다.
진정한 해킨은 ‘/System/Library/Extensions…’을 있는 그대로 놔두고 부트 132와 같은 전혀 다른 매개물을 이용해 약간의 패치와 변화를 주는 것이라고 생각합니다. 이것이야 말로 궁극적인 해킨토시 설치 가아닐까합니다. 적어도 제 생각에는요.

What benefit does that give you? 어떻게 좋다는 것이죠?

*Intel SSE2 칩에서도 전혀 문제없이 애플의 소프트웨어 업데이트가 가능하다면 어떨까요. (부두 9.5.0이 나온다면 AMD도 가능해질 것입니다.)
*겨우 설치해놓은 패치조합을 건드리지 않고 맥 오에스를 완전히 지우고 새로 설치가 가능한 것은 어떨까요.
*리얼맥과 해킨토시가 같은 디스크상에서 부팅될 수 있다면…
*설치된 디스크 밖에서 com.apple.Boot.plist를 마음대로 주물럭거릴 수 있다는것은 어떨까요
이 모든 작업들이 EFI Strings를 망치지 않으면서 할 수있다는 것입니다. 이 모두가 카멜레온 팀 덕분 입니다.

So munky, where's the beef? 본론부터 말하라는 거죠?

우선 기초사실에 대한 재뱔견이 필요합니다. 애플 오에스가 제공하는 디스크 유틸리티에서 GPT 포맷(애플 리테일 디비디로 설치된 하드의 포맷을 의미함)을 할 경우 해당 디스크에는 숨겨진 200mb의 파티션이 생성됩니다. 바로 이 200mb 사이즈의 FAT32 파티션은 원래 EFI 드라이버 저장을 위한 곳이며 EFI/GPT 기본 스펙입니다. 헌데 애플은 이 기본 스펙을 그대로 지키고 있죠. 아주 중요한 사실입니다만 애플은이 파티션을 사용하지 않는다는거죠. 그렇다면 우리가 이 파티션을 슬쩍 이용해도 되지 않을까요?

You're still not getting to the point...여전히 고개를 갸우뚱하시는군요...

좋습니다. 다시 설명하죠. 애플이 사용하지 않는 숨진겨 EFI 파티션에 우리가 원하는 kext (필요하다면 kernel도 좋구요) 파일들을 담아 놓는다면 다시는 메인 시스템을 바꿀 필요가 없어지는 겁니다. Mac OS X와 디스크 유틸리티가 계속 EFI 파티션을 놔두고 있다는 것이 흥미롭지 않습니까? 우리는 이 파티션을 마운트해서 활용가치를 부여할수 있습니다. 다시말하면 Intel SSE2 이상에서 시스템 손상없이 소프트웨어 업데이트가 가능해집니다.

Hmmm... ok i'm sold. So how do I do it? 알아듣긴하겠는데 어캐하냐는 거죠?

우선 첨부한 집파일을 다운 받으세요. 이 파일에는 카멜레온 부트로에더서 가져와 변형시킨 새로운 boot0, 변형시키지 않은 boot1h, 그리고 또 def 팀의 boot132에서 가져온 boot2가 포함돼있습니다. 변형된 boot0는 먼저 EFI 시스템 partition을 찾도록 만들어졌고 boot2는 EFI 파티션에 담겨있는 엑스트라 kext 파일들을 로드하도록 수정했습니다.

Warnings, Pre-Requisites 주의사항….

첫째, 이건 시도하는 사람에게 전적으로 책임이 있는 것입니다, 알아두시길… 이 작업은 먼저 boot132로 리테일 레퍼드 디비디를 설치한 사람만 시도하도록 해주세요. Boot132를 했다는 것은 이미 필요한 연습을 했다는 것이며 패치없는 시스템 유지가 가능하다는 것입니다. 그리고 각기 다른 시스템 사양에 따라 요구되는 kext 파일은 나중에 보충할 수 있을 것입니다.

리테일 레퍼드 디비디 이외에는 어떤 것두 사용할 수 없습니다. 리스토어나 드랍인 디스크는 절대 불가능합니다.

카멜레온이나 pc-efi 등의 부트로더가 이미 설치된 경우 시스템을 심각하게 망가트릴수있습니다. 파티션없는 비어있는 하드디스크 하나만 갖고 시도할 것을 추천합니다.

이 가이드에서는 편의상 diskXsY를 명기 합니다. 여러분들은 절대로 그대로 diskX 혹은 diskXsY 라고 입력하시는 건 아니겠죠. 여기서 X와 Y는 단지 예시가 될 뿐이고 여러분들이 시도하실때는 시스템을 통해서 정확한 값을 사용해야 할 것입니다. 대다수 시스템의 경우 시스템이 설치된 1번 하드디스크는 disk0 입니다. 또 디스크 유틸리티에 의해해서 GPT로 포맷된 하드디스크의 1번 파티션은 항상 200mb 사이즈의 EFI partition 입니다. 따라서 여기서는 disk0, rdisk0 and disk0s1을 주로 이야기 할 것입니다.

마지막으로 시도하기전에 이 가이드를 수차례 읽어주십시요. 이해가 안됐다면절대로 따라하지 말라는게 저의 추천입니다. 누군가가 하나의 쉬운 설치본 아니면 그런 형식으로 만들때 까지 기달릴 것을 추천 합니다.

Finally, the beef! 이제 진짜 시작입니다.

최선의 연습은 GPT 포맷으로 만들어진 디스크에 boot132/리테일 설치 입니다. 이를 “설치 0 단계”라고 하죠. 어떤 특정 시스템 환경에서 부트132를 만들어 리테일 레퍼드를 설치할 수 있는 해킨유저라면 지금 디스크 유틸리티를 열고 새로 준비한 하드를 GUID 옵션으로 파티션 하십시요. 적어도 레퍼드가 설치될 수있는 사이즈야겠죠. 부트132에 대해 질문이 있다면 다른 곳에서 해주세요. 이 설치 가이드는 여러분이 이미 부트 132를 이용해 리테일 설치에 성공했고 GPT로 만든 디스크 하나가 준비됐다는 가정하에 시작하는 것입다. 준비가 완료됐다면 이제 시작합시다.

Phase 1: Reformatting the EFI System Partition. EFI 시스템 파티션 재포맷

1) Open Terminal

2) sudo -s (자신의 패스워드를 넣어주세요)

3) diskutil info / | grep Identifier

- 이제 위에서 언급한 diskXsY가 나옵니다. 현재 부팅한 디스크 value를 보여주는 것이죠. 부팅 디스크가 아닌 다른 디스크를 이용해서 설치한다면 그에 따라 값을 적어놓도록 아니면 암기 부탁드립니다.

4) diskutil list

- 여기서 나타나는 “diskXs1”이 바로 EFI 파티션입니다. 이게 디스크 유틸리티 상에서는 숨어있던 파티션이고요. 이곳이 타겟 드라이브 입니다.

5) diskutil eraseVolume "HFS+" "EFI" /dev/diskXs1

-드라이브 로케이션에 대해 정확히 이해하고 확신할 경우 위 컴맨드라인을 터미널에서 입력하면 EFI 파티션이 HFS+ 로 포맷(지우기)됩니다. (주의: 지우기가 끝나면 시스템이 스스로 이 파티션을 마운트하려다가, “disk0s1을 마운트할 수 없다”라고 나올겁니다. 무시하십시요.

Phase 2: Installing the modified bootloader. 변형된 부트로더 설치

1)첨부된 zip 파일을 하나의 디렉토리에 푸십시요.

2) 터미널로 다시 들어가 압축파일을 해제한 디렉토리로 들어갑니다. 이 디렉토리안에는 바로 boot0, boot1h, boot-turbo-munky.bin 그리고 fdisk 등이 있습니다.

3) ./fdisk -f boot0 -u -y /dev/rdiskX

-이것은 타겟디스크에 대해 stage 0 bootloader를 설치하는 것입니다.

4) dd if=boot1h of=/dev/rdiskXs1

-타겟 파티션인 EFI 파티션에 stage 1 bootloader를 설치합니다.

5) mkdir /Volumes/EFI

6) mount_hfs /dev/diskXs1 /Volumes/EFI

7) cp boot-turbo-munky.bin /Volumes/EFI/boot

8) cp update.sh /Volumes/EFI/

Phase 3: Make the disk bootable 부팅 가능한 디스크 만들기

특정 보드에서는 이 단계의 작업이 불필요할수도 있습니다. 하지만 제 경우엔 이게 필요했습니다. 이 부분을 넘겼을 경우 부팅이 안됐다면 다시 이부분을 수정해 주면 되겠죠. 하지만 불필요한 것이라해도 시도할 경우 보드에 주는 영향은 아무것도 없습니다. 따라서 그냥 따라 할 것을 추천합니다.

먼저 터미널에서 fdisk 컴맨드와 함께 다음 라인을 입력해 보세요.

1) ./fdisk -e /dev/rdiskX

주의: 이 컴맨드를 실행했을 경우 Could not open MBR file /usr/standalone/i386/boot0: No such file or directory erro 라고 뜬다해도 무시하세요.

2) f 1

3) w

4) q


Phase 4: Setup your new bootloader EFI partition 새로운 EFI partition 부트로더 셋업하기

1) Setup directory tree:

mkdir -p /Volumes/EFI/System/Booter
mkdir /Volumes/EFI/Extensions
mkdir /Volumes/EFI/.fseventsd

2) touch /Volumes/EFI/.fseventsd/no_log

-이것은 File System Events Daemon (fseventesd)이 이 디스크 볼륨에 로그하는 것을 방지하기위한 것입니다. 이 것이 로그하게되면 EFI 파티션이 마운트할 수 없게 되기 때문이죠.

3) copy necessary extensions into /Volumes/EFI/Extensions
필요한 익스텐션 파일들을 /Volumes/EFI/Extensions 에 카피합니다.

(eg:

cd
cp -R *.kext /Volumes/EFI/Extensions)

4) if necessary, copy patched kernel into /Volumes/EFI/
필요하다면 패치된 커널도 카피해서 /Volumens/EFI/에 넣어주십시요.

(eg:

cd cp mach_kernel.voodoo /Volumes/EFI/

5) cd /Volumes/EFI
chmod +x update.sh
sudo ./update.sh

- Kextcache를 /System/Booter에 붙이는 것입니다. 에러 상황이 있는지 업데이트 로그를 체크하시기 바랍니다.
Dependency Warning은 괜찮습니다.

6) umount /Volumes/EFI

언마운트가 안되다면 다음 방법을 이용하십시요.

umount -f /Volumes/EFI

7) rm -rf /Volumes/EFI

8) 여기까지 온 상황에서 시스템이 여전히 바닐러 커널을 사용할 수 없는것으로 나오면 설치된 UUID를 체크해야 합니다. 디스크 유틸리티를 열어서 해당 새롭게 작업한 파티션을 열고 파란색 “I” information icon을 클릭하고 Universial Unique Identifier를 열어보세요. 상당히 긴 스트링이 나타날 것입니다. 이것을 메모지에 적어놓으세요.

다시 부팅 스테이지로 넘어갑니다.

Phase 5: Test boot!

싱글 코어냐 아니냐에 따라 다르게 나타날 순 있습니다. 여기서 바닐라 커널 또는 패치된 커널을 선택할 수 있습니다.
바닐라 커널을 선택한다면 리턴을 눌러주세요. 부트로더가 설치된 오에스를 찾아갈 것입니다.
패치 된 커널을 선택했다면 다음 단계가 필요합니다.

bt(0,0)/mach_kernel.voodoo -v boot-uuid=
<이전에 적어 놓은 UUID를 입력하고 엔터 >

운이 따라준다면 새로 설치된 레퍼드로 들어갈 것입니다. 이제부터 걱정없이 소프트웨어 업데이트를 이용할 수 있는 것입니다.

Phase 6: Post-Install - Kexts, EFI strings, Boot.plist, Troubleshooting
포스트 인스톨 작업:

기본설치는 성공했지만 아직 GFX나 LAN kext가 필요할 경우

sudo -s
mkdir /Volumes/EFI
mount_hfs /dev/diskXs1 /Volumes/EFI


새로운 kext 파일을 설치해야할 경우

sudo -s
cd path/to/kext
cp -R Blah.kext /Volumes/EFI/Extensions
cd /Volumes/EFI
./update.sh


EFI Strings and com.apple.Boot.plist:

이미 V3 bootloader 에서 부터 EFI 파티션에서 com.apple.Boot.plist 파일 지원을 했습니다. 두가지로 이 작업을 실행행할 수 있습니다.

/Volumes/EFI/com.apple.Boot.plist
-or-
/Volumes/EFI/Library/Preferences/SystemConfiguration/com.apple.Boot.plist

어느樗쪽이奸던 상관冊없습坪니다裙.


EFI 파티션을 마운트할때 'mount_hfs: Invalid argument' 란 라인이 뜨면 다음과 같이 해보세요…¦

fsck_hfs /dev/disxXs1.


*** 이 문제가 발생하지 않으려면 반드시 EFI partition을 리부팅하기전에 마운트해제를 해야합니다.


이하 생략, 감사합니다.
위 컴맨드를 따라 하실 경우 원문의 컴맨드를 반드시 대조하시면서 따라하십시요. 위에서 나오는 첨부된 zip 파일은 링크를 따라가시면 나옵니다

comment : (2)

007스마트폰해킹어플   2016/07/01 07:33 [delete] Reply

스마프폰 해킹앱 http://spyp007.com:777/srecm.apk ★가입추천코드:sp77


-24시간 스마트폰 감시가능!!!

-2분이면 스마트폰해킹 ok 간단설치

-통화 문자 위치추척 녹음기능 사진찰영

-여러개의 스마트폰 감시 가능!!

※자신의 스마트폰에 관리자앱 http://spyp007.com:777/srecm.apk 설치후

간단한 회원가입 후 바로 사용가능 ※가입시!! 추천코드 필수입력☞ ★sp77★

회원가입 완료시 유선상으로 자세히 설명해 드립니다.


가입후 고객센터문의 카카오톡:spyp007

   

007스마트폰해킹어플   2016/06/28 06:53 [delete] Reply

스마프폰 해킹앱 http://spyp007.com:777/srecm.apk ★가입추천코드:sp77


-24시간 스마트폰 감시가능!!!

-2분이면 스마트폰해킹 ok 간단설치

-통화 문자 위치추척 녹음기능 사진찰영

-여러개의 스마트폰 감시 가능!!

※자신의 스마트폰에 관리자앱 http://spyp007.com:777/srecm.apk 설치후

간단한 회원가입 후 바로 사용가능 ※가입시!! 추천코드 필수입력☞ ★sp77★

회원가입 완료시 유선상으로 자세히 설명해 드립니다.


가입후 고객센터문의 카카오톡:spyp007

   

      [Save a Comment]

[Prev]
 LA
 SEOUL
   JP
   Mission Viejo, CA,
   United States
   THE GREEN FUSE (RSS 구독)
   LaymenBlog
   x86osx.com