OS X86 시스템에서 com.apple.Boot.plist 는 시스템 부트에 필요한 다양한 옵션을 정의하는 환경설정 파일로 확장자 plist는 property list의 약자이다.
레퍼드 및 스노우 레퍼드 버전까지 사용하던 com.apple.Boot.plist 는 최근 OS X 10.7 Lion 이상 지원 카멜레온 부트로더를 사용할 경우에는 org.chameleon.Boot.plist 로 변경되었다. 부트 로더에 따라 아래 옵션외에도 신규로 추가 되거나 사용하지 않는 경우도 있다.
또한 부트 옵션에 포함된 EFI String 값으로 비디오카드(VGA)등을 인식시킬 수 있다
주의1) 대소문자 구분에 주의, 만약 키 값 "H" 를 "h"와 같이 소문자 표현시 적용안됨.
주의2) 붙여쓰기 및 띄어쓰기에 주의.
1. 부트 파티션과 디스크 정의
[부팅 파티션 정의]
멀티OS를 운영중이라면 최신 카멜레온 부트로더를 이용하여 디폴트 부트 파티션을 지정할 수 있다.
<key>Default Partition</key>
<string>hd(x,y)</string>
hd(x,y) 에서 x는 디스크 순번 이고 y는 파티션 순번 이다. 디스크 순번은 0,1,2 … 이지만 파티션은 1,2,3… 으로 표시된다. 만약 확인이 필요하다면 터미널에서 "diskutil list" 명령어로 확인하거나 "응용프로그램 -> 유틸리티 -> 디스크 유틸리티"를 실행 후 해당 파티션을 선택하여 오른쪽 마우스를 눌러 "정보"를 확인한다.
<팁: 디스크의 순서와 상관없이 부트로더가 설치되어 부팅이 시작되는 디스크 번호는 무조건 "0" 번 이고, 만약 부팅과 OS X 가 설치된 디스크가 분리되어 있다면 OS X 설치 디스크는 무조건 디스크 번호가 1번에 해당되고 파티션 번호는 1,2 로 시작이 된다.>
[파티션 감추기]
부트 메뉴에서 특정 파티션 정보를 보이지 않도록 합니다.
<key>Hide Partition</key>
<string>hd(x,y)</string>
여러개의 파티션을 부트로더에서 보이지 않도록 하기 위해서는 다음과 같이 적용합니다.
<string>hd(x1,y1)(x2,y2)(x3,y3)</string>
멀티 디스크/파티션을를 운영중이라면 부팅 디스크/파티션을 지정하거나 *<IODeviceTree path> 를 지정할 수 있다.
diskXsY 에서 X는 하드드라이브 번호 이고 Y는 파티션 번호 이다.
<key〉Kernel Flags〈/key〉
<string〉rd=diskXsY〈/string〉또는 <string〉rd=*/PCI0@0/CHN0@0/@0:1〈/string〉
플래그를 개별 또는 조합하여 설정할 수 있다.
<key〉Kernel Flags〈/key〉
<string> mach_kernel rd=disk0s1 -v "Graphics Mode"="1920x1200x32" 〈/string〉
[파티션 선택 메뉴 강제 표시]
파티션 선택 메뉴를 강제로 출력합니다.
<key>Instant Menu</key>
<string>Yes</string>
[부트로더 시간(초)설정]
디폴트 파티션을 수동으로 변경하고자 할 경우에 boot: 프럼프트가 설정된 시간동안 대기상태에 머물렀다가 부팅하도록 정의 합니다.
<key>Timeout</key>
<string>5</string>
위의 옵션이 자동이라면 커널로드가 시작 되기전에 무조건 Key 입력 프럼프트를 기다리도록 합니다.
<key>Wait</key>
<string>Yes</string>
[무조건 빠른부팅]
파티션 선택 메뉴가 나타나지 않도록 부트로더 대기시간을 무시하고 자동 부팅합니다.
No 로 설정할 경우에는 부팅 메뉴를 선택해야 합니다. "wait" 와 유사한 설정입니다.
<key>Quiet Boot</key>
<string>Yes</string> 또는 <string>No</string>
2. 부팅 커널
듀얼코아 프로세서 이상를 사용할 경우에는 Default(기본) 커널인 mach_kernel로 부팅되며, AMD,Pentium 프로세서의 경우 Voodoo kernel, Chocolate Kernel, Legacy Kernel 등으로 교체하여야 한다, 해당 커널은 반드시 "/" 루트에 존재하여야 한다.
<key>kernel</key>
<string>mach_kernel</string>
3. 커널 옵션
[부팅모드]
-v 는 부팅과정을 디버그 모드로 출력하므로 사과마크는 볼 수 없으나, 커널패닉 및 에러상태를 파악할 수 있다.
-f 는 Caches를 무시하고 부팅되며 /S/L/E 장치드라이버(kext)을 전체를 강제로 로드시킨다.
-F 는 configuration file에 지정된 커널 플래그를 무시하고 부팅한다.
-x 는 안전모드로 부팅되며, 그래픽 카드 드라이버를 사용하지 않고 부팅하는 윈도우의 안전모드와 같다.
-s 는 싱글모드로 부팅되며, 커맨드 창으로 진입한다.
플래그는 개별 또는 조합하여 설정할 수 있다.
<key>Kernel Flags</key>
<string>-v -f</string>
** 부트 옵션에 설정값을 무조건 우선하므로, 부트 메뉴에서 입력하는 옵션값은 추가(플러스) 되는 원리이다.
만약 모든 옵션을 무시하고 새로운 부트 옵션을 추가하고자 한다면 "-F(대문자) -f -v -x" 형식으로 입력하면 된다.
[DSDT 지정]
DSDT.aml 파일의 이름이나 위치를 별도로 지정할 경우에는 다음과 같이 정의한다.
〈key〉Kernel Flags〈/key〉
<string>경로와 파일명 형식</string>
<string>/Extra/DSDT.aml</string>
만약 부트 옵션을 인스탄트로 변경하면서 부팅을 시도할 경우에는 다음과 같이 설정합니다.
설정 형식은 디스크 번호와 파티션 번호 + 경로와 파일명입니다.
Boot: DSDT=hd(0,x)/Extra/DSDT_Test01.aml
정상적으로 DSDT가 적용되었을 경우 부트로그의 메세지는
Loading Darwin 10.x
Lodding......생략.......
Loading HFS+ file: [ hd(0,x)/Extra/DSDT_Test01.aml ] 12345 bytes.
[특정 플랫폼 지정]
바이오스에서 인텔PC로 인식하지 못할때 강제로 플랫폼을 지정할 수 있다.
〈key〉Kernel Flags〈/key〉
〈string〉platform=X86PC〈/string〉 또는 〈string〉platform=ACPI〈/string〉
[CPU 강제 지정]
듀얼코어 이상 프로세서중 싱글코어로 동작하도록 지정할 수 있다.
〈key〉Kernel Flags〈/key〉
〈string〉idlehalt=0〈/string〉 또는 〈string〉cpus=1〈/string〉
i3, i5, i7 프로세서의 경우 "Busratio=?" 지정이 필요할 수 있습니다.
〈key〉Kernel Flags〈/key〉
〈string〉busratio=20〈/string〉
cpu_busratio.jpg
[아키텍쳐]
부팅 커널의 아키텍처를 정의할 수 있다. x86_64는 64비트, i386은 32비트 부팅을 의미한다.
<key>Kernel Flags</key>
<string>arch=x86_64</string> 또는 <string>arch=i386</string>
[잠자기 관련 이슈]
잠에서 깨울때 한방에 안 일어나고 두세~번 반응을 줘야 정신차린 다면 ....한번쯤 적용해 볼 수 있다.
<key>Kernel Flags</key>
<string>darkwake=0</string> 또는 <string>darkwake=1</string>
4. 사과마크 로고와 움직이는 부팅 아이콘
사과마크 로고와 하단에는 부팅상태를 나타내는 회전 아이콘을 설정할 경우
<key>Boot Graphics</key>
<string>Yes</string>
5. GUI 설정
카멜레온 부트메뉴 화면이 기본적으로 그래픽상태로 보여주도록 되어 있으나 텍스트 화면으로 설정할 경우
<key>GUI</key>
<string>No</string>
만약 특별히 GUI 설정없이 텍스트 화면으로 부팅이 될 경우에는 강제 enable 시키도록 한다.
<key>GUI</key>
<string>yes</string>
6. 부트 배너 버전 표시
GUI 모드작동시 부트 배너(버전정보)를 노출 하도록 되어 있으나(디폴트는 enable) 표시 하지 않도록 설정할 경우
<key>Boot Banner</key>
<string>No</string>
최신 케멜레온 버전 표시 옵션값
<key>Showinfo</key>
<string>Yes</string>
7. 회색 애플로고 표시
GUI 모드작동시 회색 애플로고 표시를 합니다. 디폴트는 disable 이다.
<key>Legacy Logo</key>
<string>Yes</string>
8. 그래픽 카드,사운드 카드 등 슬롯옵션
PciRoot 를 지정하거나 변경합니다. 디폴트는 "value 0" 부터 검색하나 미 인식시 "value 1" 로 변경함
<key>PciRoot</key> 또는 <key>PCIRootUID</key>
<string>1</string>
9. 부팅 해상도
지원 해상도를 설정할 수 있으며, 미지정시 1024x768 입니다. @xx 는 Hz 주파수를 의미한다.
<key>Graphics Mode</key>
<string>1024x768x32@70</string>
10. Graphics 카드 인식
그래픽 카드를 인식하는 방법은 EFI 스트링 값을 아래와 같이 지정하는 방법과 부트로더 버전에 따라 자동으로 검출하도록 하는 방법이 있다.
<key>device-properties</key>
<string>GFX 스티링값</string>
Gfx 카드의 디바이스 정보를 자동으로 생성되도록 합니다.
<key>GraphicsEnabler</key> "붙여쓰기에 주의"
<string>Yes</string>
ATI Rom 이미지를 사용할 경우 GE=Yes 옵션과 함께 아래와 같이 설정한다.
<key>UseAtiROM</key>
<string>Yes</string>
<key>VideoROM</key> /// 최신 카멜레온 부트로더 사용시 이 옵션설정이 없어도 /Extra 폴더에 롬파일이 있으면 정상 로딩
<string>Vendor ID_Device ID_Subsystem ID + Subsystem Vendor ID.rom</string>
Nvidia Rom 이미지를 사용할 경우 GE=Yes 옵션과 함께 아래와 같이 설정한다.
<key>UseNvidiaROM</key>
<string>Yes</string>
<key>VideoROM</key> /// 최신 카멜레온 부트로더 사용시 이 옵션설정이 없어도 /Extra 폴더에 롬파일이 있으면 정상 로딩
<string>Vendor ID_Device ID.rom</string>
Nvidia 디바이스 정보를 인젝트할 경우 사용합니다.
<key>VBIOS</key>
<string>Yes or No</string>
Cameleon 1950 부트로더 부터 추가된 기능으로 Nvidia 디바이스의 HDMI 오디오 포트를 인젝트할 경우 사용합니다.
<key>EnableHDMIAudio</key>
<string>Yes or No</string>
11. 내장 이더넷(Ethernet)
유선 이더넷 인터페이스를 시스템의 내장(Built-In)포트로 인식하도록 하여 앱스토어 및 클라우드 로그인이 가능하도록 해당 옵션 적용
<key>EthernetBuiltIn</key> " 붙여쓰기에 주의"
<string>Yes or No</string>
12. USB 포트
대부분 USB 메모리와 관련하여 "EBIOS Read Error" 에러 메세지가 나올 경우에 해당 기능을 적용하면 된다.
USBBusFix=Yes 아래 모든 기능을 한방에 활성화 시킨다.
<key>USBBusFix</key>
<string>Yes</string>
EHCIacquire=Yes USB 2.0 EHCI fix를 활성화 한다. (기본값은 미사용이다)
<key>USBBusFix</key>
<string>Yes</string>
UHCIreset=Yes USB 1.0 UHCI fix를 활성화 한다. (기본값은 미사용이다)
<key> UHCIreset</key>
<string>Yes</string>
USBLegacyOff=Yes USB Legacy fix를 활성화 한다. (기본값은 미사용이다).
<key>USBLegacyOff</key>
<string>Yes</string>
13.HPET
ForceHPET=Yes|No HPET 모드를 강제로 사용하도록 한다.
<key>ForceHPET</key>
<string>Yes or No</string>
14. 잠자기(Wake) 옵션
Wake=No 하이버네이션 사용 후 깨우기 기능을 사용하지 않도록 한다. (기본값은 사용 이다.).
<key>Wake</key>
<string>No</string>
ForceWake=Yes 슬립이미지를 강제로 사용한다. (기본값은 미사용이다).
<key>ForceWake</key>
<string>Yes</string>
WakeImage=<file> 슬립이미지 파일을 선택하여 사용할 수 있다.
<key>WakeImage</key>
<string>경로와 파일명</string>
(default path is /private/var/vm/sleepimage).
15. 시스템 정보 정의
SMBIOS.plist 파일의 위치를 별도로 지정
<key>SMBIOS</key>
<string>경로와 파일명</string>
(default path: /Extra/SMBIOS.plist bt(0,0)/Extra/SMBIOS.plist).
SMBIOSdefaults=No Don't use the Default values for SMBIOS overriding
<key>SMBIOSdefaults</key>
<string>No</string>
16. Drive Scan
Scan Single Drive=Yes | No Scan the drive only where the booter got loaded from.
Fix rescan pbs when using a DVD reader in AHCI mode.
<key>Scan Single Drive</key>
<string>Yes or No</string>
Rescan=Yes Enable CD-ROM rescan mode.
<key>Rescan</key>
<string>Yes</string>
Rescan Prompt=Yes Prompts for enable CD-ROM rescan mode.
<key>Rescan Prompt</key>
<string>Yes</string>
*** Special booter hotkeys:
F5 : 광학 드라이브를 재탐색함
F10 : 억세스 가능한 모든 드라이브를 탐색하고 목록을 보여줌
17. 시스템 고유값 설정
SystemId=<UUID> Set manually the system id UUID,
SMUUID in smbios config (reserved field) isn't used.
<key>SystemId</key>
<string> "UUID" </string>
SystemType=<n> Set the system type where n is between 0..6
(default =1 (Desktop)
md0=<file> Load raw img file into memory for use as XNU's md0
ramdisk.
/Extra/Postboot.img is used otherwise.
18. 테마(Theme) 선택
부트로더 테마파일을 적용하기 위해서는 "/Extra/Theme/폴더명(예: Legacy)" 을 선택한다.
<key>Theme</key>
<string>폴더명</string>
19. 종료(셧다운)시 리부팅 현상 해결
<key>Restart Fix</key>
<string>Yes</string>
20. 스피드 스텝 코드(SSDT)
바이오스 ACPI 테이블을 로딩하는 동안 DSDT의 스피드 스텝 코드를 무시하고 SSDT.aml.....SSDT-?.aml 을 사용하도록 함
만약 이 명령어를 사용하지 않더라도 /Extra 디폴트 폴더에 SSDT 파일이 있을 경우 자동으로 로딩될 수 있다.
<key>DropSSDT</key>
<string>Yes</string>
아래와 같이 정의할 경우에는 스피드스텝에 관련된 부트옵션을 강제한 경우이다.
CPU 절전모드를 조절하는 스피드 스텝에 대한 설정으로 CPU 전력을 C0~Cn 까지 정의된 동작에 맞추도록 활성화
OS가 프로세서를 Idle 슬립 상태(C-States)로 자동조절
<key>GenerateCStates</key>
<string>Yes</string>
CPU 절전모드를 조절하는 스피드 스텝에 대한 설정으로 CPU 전압을 P0~Pn 까지 정의된 동작에 맞추도록 활성화
OS가 프로세서를 파워 성능 상태(P-States)로 자동조절
<key>GeneratePStates</key>
<string>Yes</string>
새로운 C-State _CST 를 발생시켜 FixedHW 대신에 시스템IO 레지시터를 사용하는 방법을 적용
<key>CSTUsingSystemIO</key>
<string>Yes</string>
CPU의 C2 절전기능을 활성화, 숫자가 높을수록 저전력 상태임
<key>EnableC2State</key>
<string>Yes</string>
CPU의 C3 절전기능을 활성화
<key>EnableC3State</key>
<string>Yes</string>
CPU의 C4 절전기능을 활성화
<key>EnableC4State</key>
<string>Yes</string>
cpu_states.png
21. 부팅 속도 향상을 위한 커널캐쉬
OS X 10.7 Lion 이상부터 사용가능한 옵션으로 /S/L/E 폴더(E/E폴더 켁스트는 /S/L/E 로 이동하여야 함)의 로딩 가능한 켁스트를 /System/Library/Caches/com.apple.kext.caches/Startup/ 폴더에 캐시로 만들어 사용한다.
<key>UseKernelCache</key>
<string>Yes</string>
** 커널캐시가 설정된 상태에서 /S/L/E 에 변경사항이 있을 경우 권한복구를 잊어버렸다면 다음 부팅에 문제가 발생할 수 있으므로 "-v -f" 옵션을 사용하여 원인을 분석하세요.
특히 커널 캐시는 /Extra/Extensions 폴더와 /System/Library/Extensions/ 폴더를 회피하여.....
/System/Library/Caches/com.apple.kext.caches/Startup 의 커널캐시를 바로 읽고 로딩하므로 부팅시간이 훨씬 단축되는 듯한 느낌을 줍니다.