Jump to content

[GUIDE] Chameleon 2 RAID - More complete tutorial


nathan7
 Share

53 posts in this topic

Recommended Posts

Let me say I have used Macs for 20 years, and I never did a RAID. A few weeks ago, I bought two fast drives (ST3320613AS), and setup a software RAID 0 to boot with munky's EFI method. It is fast as hell! I love it. I have 3 RAID volumes between these 2 drives: Mac RAID, Applications, and Users. I know it could be faster if the whole drive was one RAID volume, but this is better than a single drive anyway. I get 220MB/sec with AJA System Test.

 

For this guide, let's assume:

 

1. You are logged in as a user with administrator privileges. I don't know if this matters for renaming the "Boot OSX" volumes from the desktop, but I was, so be aware.

 

2. You already have an Extra folder that is working well for you with Chameleon 2 installed on a non-RAID volume. It has DSDT.aml (if you use one), Extensions.mkext, Themes, com.apple.Boot.plist, smbios.plist (if you use one) in it.

 

3. Suppose that your RAID installation root volume is /dev/disk4, which is either a mirror or a stripeset consisting of /dev/disk2 and /dev/disk3.

 

 

When you create a RAID with Disk Utility, Mac OS X creates a small helper partition after each RAID slice, namely /dev/disk2s3 and /dev/disk3s3. These are all named "Boot OSX".

 

If you haven't already, set up your RAID root volume, and clone your working install to it with Super Duper or Carbon Copy Cloner. There should not be a /Extra on the RAID root volume and /Library/Preferences/SystemConfiguration/com.apple.Boot.plist should be vanilla, no modifications.

 

Boot.plist.vanilla.zip

 

Because I was coming from a munky w/RAID mod install, my RAID root volume was already set up. I tried and failed to get Chameleon 2 to work with the EFI partitions on my RAID slices. The computer would just reset when it tried to load Chameleon, so I formatted the EFI partitions like so:

 

diskutil eraseVolume "HFS+" "EFI" /dev/disk2s1
diskutil eraseVolume "HFS+" "EFI" /dev/disk3s1

 

This got me into Chameleon from the RAID disk, but having followed the README with Chameleon 2, when I tried to boot the "Boot OSX" partition, I got a kernel panic related to AppleIntelCPUPowerManagement.kext, so I knew my Extensions.mkext was not loading from /Extra on the RAID root volume. I moved a copy of Extra to both of the "Boot OSX" partitions, removed /Extra from my RAID root volume, and hooray it works! Then I experimented with changing the name of the "Boot OSX" partitions, and that worked, too. I also tried both RAID root volume UUIDs, and either one works.

 

You can skip all the sudos if you become root first with sudo -s.

 

OK, Let's do this, fire up Terminal:

 

1. Copy your Extra folder to the Desktop, and unzip the Chameleon folder to the Desktop.

 

2. Add "rd=uuid boot-uuid=(your UUID)" to your kernel flags in your ~/Desktop/Extra/com.apple.Boot.plist. Find your UUID using Disk Utility, right click on your RAID root volume (i.e. "Mac RAID"), then click Information. You can use the Universal Unique Identifier or the RAID Identifier:

 

nano ~/Desktop/Extra/com.apple.Boot.plist

It should look like this:

	 <key>Kernel Flags</key>
	 <string>rd=uuid boot-uuid=ECCB72E4-D6EC-37DC-97C4-8AD7BD4466E6</string>

 

 

3. Set good permissions on Extra (others may work, this is how I did it):

 

sudo chmod -R 644 ~/Desktop/Extra
sudo chown -R root:wheel ~/Desktop/Extra

 

 

4. Change to Chameleon i386 folder:

 

cd ~/Desktop/Chameleon-2.0RC1-r431-bin/i386

 

 

5. Install boot0 to the MBR of both disks:

 

sudo fdisk -f boot0 -u -y /dev/rdisk2
sudo fdisk -f boot0 -u -y /dev/rdisk3

 

 

6. Install boot1h to the bootsector of each "Boot OSX" partition:

 

sudo dd if=boot1h of=/dev/rdisk2s3
sudo dd if=boot1h of=/dev/rdisk3s3

 

 

7. Copy boot and Extra folder to both "Boot OSX" helper partition's root directories.

 

1st partition:

sudo diskutil mount disk2s3
sudo cp boot /Volumes/Boot\ OSX/
sudo cp -R ~/Desktop/Extra /Volumes/Boot\ OSX/
(before unmounting, if you wish, change the name of Boot OSX from your desktop, I called mine "Mac RAID Boot 1")
sudo diskutil unmount disk2s3

 

2nd partition:

sudo diskutil mount disk3s3
sudo cp boot /Volumes/Boot\ OSX/
sudo cp -R ~/Desktop/Extra /Volumes/Boot\ OSX/
(before unmounting, if you wish, change the name of Boot OSX from your desktop, I called mine "Mac RAID Boot 2")
sudo diskutil unmount disk3s3

 

sudo touch /Volumes/(your RAID root volume, i.e. "Mac RAID")/System/Library/Extensions

 

 

8. Make the disk bootable (partially copied from munky). I didn't do this step, but I should and will because it makes sense. My board seems to be one that doesn't care as it boots like it should. This stage may not be necessary on some boards, but on munky's Intel board and Bad Axe boards it is. If you skip this step and your system wont boot, try doing it. That said, doing this on boards which DONT need it will do no harm so my logic is do it anyway.

 

A) sudo fdisk -e /dev/rdisk2 (Ignore any fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory error)

	 B) f 3

	 C) w

	 D) q

	 Repeat 1-4 with your other RAID member disk, rdisk3 in this example.

 

Reboot, set your BIOS to boot either of your RAID member disks, and you should boot into the Chameleon 2 GUI. Select either of the "Boot OSX" partitions or whatever you may have renamed them to, and your RAID root volume will boot in a thing of beauty.

 

This guide may not be perfect, but I went over it several times, and I am pretty sure it is. Please give me feedback and I will make any corrections, if needed.

Link to comment
Share on other sites

Thanks for this. Everything seems to be working on except my Video. How do I get my video card working? I have a PNY 8600GT 256MB. Before I used EFIStudio to add the correct EFI String but now that doesn't seem to be working.

 

Any help would be appreciated.

Link to comment
Share on other sites

Thanks for this. Everything seems to be working on except my Video. How do I get my video card working? I have a PNY 8600GT 256MB. Before I used EFIStudio to add the correct EFI String but now that doesn't seem to be working.

 

Any help would be appreciated.

 

The same EFI string you used before should go in your com.apple.Boot.plist in /Extra on both of your "Boot OSX" helper partitions. Make sure you don't have an /Extra on your RAID root boot volume and make sure your com.apple.Boot.plist on your root volume at /Library/Preferences/SystemConfiguration/ is vanilla like the one attached to the OP. I have an EFI string for my PNY card also, working great.

 

Thank you for trying it out.

Link to comment
Share on other sites

Thanks for helping me out. Everything is working now. My Root boot.plist was the one with the efi string in it so I just put a vanilla one in the root and a modified the 2 on the Boot OSX volumes. Running noticeably faster now. Have 2 500GB striped. Getting 250.13 Xbench and 8554 geekbench scores!

Link to comment
Share on other sites

Thanks for helping me out. Everything is working now. My Root boot.plist was the one with the efi string in it so I just put a vanilla one in the root and a modified the 2 on the Boot OSX volumes. Running noticeably faster now. Have 2 500GB striped. Getting 250.13 Xbench and 8554 geekbench scores!

 

No problem. Glad I could help and you got it set. Thanks for the feedback.

Link to comment
Share on other sites

Hi nathan7, sounds like an awesome tutorial! Thanks for taking the time to write this down.

 

3. Set good permissions on Extra (others may work, this is how I did it):

 

sudo chmod -R 644 ~/Desktop/Extra
 sudo chown -R root:wheel ~/Desktop/Extra

Indeed, there are many different ways around for using "chmod" on KEXTs; my favorite is the following:

sudo chmod -R go=u-w <directory>

. What this does is: set the perms of g="group" and o="others" equal to those of the owner u="user", but minus write permissions.

 

Thus, you preserve the execute bit on directories and will still be able to browse them in Finder or Terminal as a normal user.

 

If you would like to take this one step further, you could probably adapt the script I wrote for Munky's method to your own setup rather easily.

 

Thanks,

zhell

Link to comment
Share on other sites

thank you for that tutorial, without you i would have had alot more trouble.

 

for others an advise, if you need an dsdt.aml to boot, you have to put it in the extra folder on the osx boot partitions.

it won't load from root. such things can cost you hours, unbeliveable small issue but such a hassle

Link to comment
Share on other sites

Hi, thanks for the guide,

I'm new to Chameleon 2, What the advatage of it is this similar to the EFI Method?

 

Can I Install a Full Retail in the RAID Volume? and them Install the Kernel (voodoo for example) and Kexts in the Chameleon2 Partition?

 

I manage to Install Chameleon2 following you Guide and update my Previous Chameleon1 Loader. but I'm not sure Which Kext to put in the Chameleone2 Extra Foder. BTW what is the Best Way to Update Kext in the Chameleon2 Partition just droping it?

Thanks

Andy

Link to comment
Share on other sites

  • 1 month later...

Thanks! Been using this method for a few weeks now: off a old 2xWD500 "Blues"

 

Disk Test 139.42

Sequential 181.96

Uncached Write 252.87 155.26 MB/sec [4K blocks]

Uncached Write 246.06 139.22 MB/sec [256K blocks]

Uncached Read 95.98 28.09 MB/sec [4K blocks]

Uncached Read 282.10 141.78 MB/sec [256K blocks]

Random 113.01

Uncached Write 53.98 5.71 MB/sec [4K blocks]

Uncached Write 365.74 117.09 MB/sec [256K blocks]

Uncached Read 117.27 0.83 MB/sec [4K blocks]

Uncached Read 178.24 33.07 MB/sec [256K blocks]

Link to comment
Share on other sites

Thanks for the guide! It took me forever to find one like this, I only stumbled across through a link in the comments on the Chameleon developers site.

 

I'll post my success/failure here when I've tried it tomorrow.

Link to comment
Share on other sites

  • 1 month later...

lithium; i think retail install would work fine -- you would need to seed your boot132 with the uuid string at the boot prompt (ie: something like the below but of course with your uuid string)

 

<string>rd=uuid boot-uuid=ECCB72E4-D6EC-37DC-97C4-8AD7BD4466E6</string>

 

once you are booted follow the instructions

Link to comment
Share on other sites

Hey, thanks so much for this guide!

 

I was able to go from an iPC / Deneb 10.5.6 install to a "Vanilla" install using Chamelon 2 RC 1 on my Gigabyte P35-DS3L and create a 4 TB raid using this guide. VERY fast, works great!

 

Thanks again!

Link to comment
Share on other sites

  • 4 weeks later...
  • 3 weeks later...

I've got the same problem. The cause of the issue is that Boot OSX partition must contain a copy of kernel and some additional files all of which are created there during installation. And they are not created if you install Mac OS from the package on installation disk. The partial solution is installing Leopard on raid first then formatiing RAID volume and finally installing SL on it. PCI_EFI will hook up Leo kernel from Boot OSX to load SL from RAID volume.

 

But this method can cause some troubles too as it involves using an old kernel to boot newer OS. For example some kexts from Extra won't load. And to just replace mach_kernel in Boot OSX with newer version is not an option. I'm working on the possible solution now.

Link to comment
Share on other sites

I am glad this guide has proven useful for some.

 

I've got the same problem. The cause of the issue is that Boot OSX partition must contain a copy of kernel and some additional files all of which are created there during installation. And they are not created if you install Mac OS from the package on installation disk. The partial solution is installing Leopard on raid first then formatiing RAID volume and finally installing SL on it. PCI_EFI will hook up Leo kernel from Boot OSX to load SL from RAID volume.

 

But this method can cause some troubles too as it involves using an old kernel to boot newer OS. For example some kexts from Extra won't load. And to just replace mach_kernel in Boot OSX with newer version is not an option. I'm working on the possible solution now.

 

I haven't tried the RAID with Snow yet, waiting on my disc. I was just looking for some updated info on how to do a new RAID with Chameleon RC2. I updated my current config with RC2 manually and it works great.

Link to comment
Share on other sites

Hey there...

 

Thanks for the guide, it put me on the right track, but still no go on Snow...

 

I keep getting the "can't find mach_kernel" option after choosing Boot OSX on chameleon boot screen...

 

If I put the vanilla kernel there it panics on startup...

 

Anybody got passed this stage ?

Link to comment
Share on other sites

  • 3 weeks later...
  • 4 weeks later...
 Share

×
×
  • Create New...