Root/
Source at commit 342 created 13 years 9 months ago. By azimutz, As you can see, there is a catch... a good one, i think! I did tried to keep /Extra path, though my real intention was to remove it, in favor of loading files only from booter volume and OS specific folders, providing we could keep the same functionality. That turned out to be true and as /Extra path kept giving me troubles, i removed it. Pros: simpler code that can be easily added any were needed (as mentioned on search_and_get_acpi_fd). Cons: none that i couldn't solve so far :) Just a note on ramdisks: when a rd is aliased as bt(0,0), all paths started by bt(0,0) (booter volume) will point to the rd and not to the volume were the booter is installed; meaning that, with this algo that only uses bt(0,0) paths, when using a rd aliased as bt, the rd will be the only volume searched!! This makes rd's aliased as bt, ideal to load full sets of files, like when using pre-boot discs, were the files need to be all loaded from the ramdisk into memory. | |
---|---|
1 | ␊ |
2 | Chameleon Boot Loader␊ |
3 | =====================␊ |
4 | ␊ |
5 | What is it?␊ |
6 | -----------␊ |
7 | ␊ |
8 | Chameleon is combination of various boot loader components. It is based␊ |
9 | on David Elliott's fake EFI implementation added to Apple's boot-132␊ |
10 | project. Chameleon is extended with the following key features:␊ |
11 | ␊ |
12 | ␊ |
13 | Features␊ |
14 | --------␊ |
15 | ␊ |
16 | - Device Property Injection via device-properties string in com.apple.Boot.plist␊ |
17 | - hybrid boot0+boot1h loaders for both MBR and GPT partitioned disks.␊ |
18 | - automatic FSB detection code even for recent AMD CPUs.␊ |
19 | - Apple Software RAID support.␊ |
20 | - stage2 loader (boot) can be placed as a regular file in the boot␊ |
21 | partition's root folder. It has precedence over the embedded␊ |
22 | startupfile.␊ |
23 | ␊ |
24 | ␊ |
25 | Installation␊ |
26 | ============␊ |
27 | ␊ |
28 | Normal Install (non-RAID):␊ |
29 | --------------------------␊ |
30 | ␊ |
31 | Suppose that your installation is on /dev/disk0s2␊ |
32 | ␊ |
33 | - Install boot0 to the MBR:␊ |
34 | ␉␉sudo fdisk -f boot0 -u -y /dev/rdisk0␊ |
35 | ␊ |
36 | - Install boot1h to the partition's bootsector:␊ |
37 | ␉␉sudo dd if=boot1h of=/dev/rdisk0s2␊ |
38 | ␊ |
39 | - Install boot to the partition's root directory:␊ |
40 | ␉␉sudo cp boot /␊ |
41 | ␊ |
42 | No need to use startupfiletool anymore!␊ |
43 | ␊ |
44 | ␊ |
45 | RAID Install:␊ |
46 | -------------␊ |
47 | ␊ |
48 | Suppose that your installation is on /dev/disk3, which is either a mirror- or a␊ |
49 | stripeset consisting of /dev/disk0 and /dev/disk1␊ |
50 | ␊ |
51 | Mac OS X creates a small helper partition at the end of each RAID member disk,␊ |
52 | namely /dev/disk0s3 and /dev/disk1s3␊ |
53 | ␊ |
54 | - Install boot0 to the MBR of both disks:␊ |
55 | ␉␉sudo fdisk -f boot0 -u -y /dev/rdisk0␊ |
56 | ␉␉sudo fdisk -f boot0 -u -y /dev/rdisk1␊ |
57 | ␊ |
58 | - Install boot1h to the bootsector of each boot partition:␊ |
59 | ␉␉sudo dd if=boot1h of=/dev/rdisk0s3␊ |
60 | ␉␉sudo dd if=boot1h of=/dev/rdisk1s3␊ |
61 | ␊ |
62 | - Install boot to both helper partition's root directories.␊ |
63 | ␉␉diskutil mount disk0s3␊ |
64 | ␉␉cp boot /Volumes/Boot\ OSX␊ |
65 | ␉␉diskutil unmount disk0s3␊ |
66 | ␉␉diskutil mount disk1s3␊ |
67 | ␉␉cp boot /Volumes/Boot\ OSX␊ |
68 | ␉␉diskutil unmount disk1s3␊ |
69 | ␊ |
70 | - Add "rd=uuid boot-uuid=506D8F03-0596-32D8-BE0B-E3A4E7D5C72A" to your kernel flags␊ |
71 | (replace with your root volume's UUID; find out using "Disk Utility.app", right␊ |
72 | ␉ click on your root volume, then Get Info"):␊ |
73 | ␉␉nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist␊ |
74 | ␉␉touch /System/Library/Extensions␊ |
75 | ␊ |
76 | ␊ |
77 | Support:␊ |
78 | --------␊ |
79 | ␊ |
80 | If you have any questions, issues etc. feel free to join us␊ |
81 | at irc.voodooprojects.org #chameleon␊ |
82 | ␊ |
83 | ␊ |
84 | Source Code␊ |
85 | -----------␊ |
86 | ␊ |
87 | For downloading the source code please visit the project page at␊ |
88 | http://chameleon.osx86.hu␊ |
89 | ␊ |
90 | ␊ |
91 | Licensing␊ |
92 | ---------␊ |
93 | ␊ |
94 | Chameleon is released under the terms and conditions of␊ |
95 | Apple Public Source License (see APPLE_LICENSE).␊ |
96 | To use "Chameleon" for commercial purposes please contact us at:␊ |
97 | http://chameleon.osx86.hu/contact␊ |
98 |