Jump to content

[GUIDE] LION on Software RAID0 fully working..


vboyz
 Share

28 posts in this topic

Recommended Posts

OK, so by now if you are looking to do software RAID0/1 on Lion that you'll run into an issue where Chameleon can't handle the kernelcache properly (with old version), therefore caused a kernel panic stating "Kext Summary" error. The root cause was that Chameleon depends on Extensions.mkext in the Boot helper partition. It worked well with Snow but with Lion, the system ALWAYS tries to keep the kernelcache file located in /Boot OS X/com.apple.boot.X/S/L/Caches/com.apple.kext.caches/Startup (where X can be a letter of R, S, P).

 

You can boot off of the USB stick to generate the Extentions.mkext and put it into the directory above, but the BIG problem is, when Lion generates new kernelcache, it deletes that folder and generate a new one. For instance, if the old one is "com.apple.boot.P", the new one will be "com.apple.boot.S" then Chameleon will cause Kernal panic because now Extensions.mkext no longer exists. For me it was a pain to keep generating almost on every reboot.

 

Did some reading and found the answer by compiling the latest branch of Chameleon.

 

Instructions:

 

Optional ONLY if you want to compile the source.

 

1. You MUST have Xcode installed (I had version 3 and it worked fine)

2. in terminal get latest of branch by typing: svn co http://forge.voodooprojects.org/svn/chamel...anches/mozodojo

3. Once done, a new directory will be downloaded named "mozodojo"

4. Go into that directory and make sure the revision is at least 1200s by viewing the "revision" file.

5. While in the root of "mozodojo", type: make

6. The system will attempt to compile Chameleon source.

7. Once done, the binary is located in "sym" directory

 

Installing and setting up boot with new binary.

 

1. Go here (http://www.insanelymac.com/forum/index.php?showtopic=160467) and look at step 5 to 8 for how to install the new binary bootloader

2. If you already have an existing Extra folder, rename the com.apple.Boot.plist to org.chameleon.Boot.plist because new code is looking for this file.

3. IMPORTANT: go into org.chameleon.Boot.plist and create (if not there) these lines:

<key>UseKernelCache</key>

<string>Yes</string>

4. Save it off.

5. Now move ALL you kexts from /Extra/Extensions into /S/L/E because with the flag "UseKernelCache", Chameleon will ignore /E/E.

6. We need to have Lion generate new kernelcache to pickup new extensions by typing: touch /System/Library/Extensions

7. Wait for it to be done, and reboot.

8. Now you have a full working RAID

 

If you don't want to hassle with compiling, Chameleon revision 1278 binaries is attached.

 

With new Chameleon code, there's no need for mach_kernel to be in the boot helper partition, you can delete it and Extensions folder also.

 

So my Boot OS X partitions as follow:

 

System --> Lion auto generated folder, don't touch

boot --> boot file from Chameleon r1278

com.apple.boot.X --> where X is a letter like R, S or P and this is where kernelcache is kept.

 

Extra folder has:

dsdt.aml

org.chameleon.Boot.plist

smbios.plist

Themes

 

That's it, nothing else here since all kexts are moved to /S/L/E

 

EDIT: Package installer attached also if you want to update via installer. Just remove the .txt extension.

 

Reference: http://forge.voodooprojects.org/p/chameleon/issues/104/

 

My org.chameleon.Boot.plist for your reference

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Boot Graphics</key>
<string>Yes</string>
<key>DropSSDT</key>
<string>Yes</string>
<key>EthernetBuiltIn</key>
<string>Yes</string>
<key>Graphics Mode</key>
<string>1280x800x32</string>
<key>GraphicsEnabler</key>
<string>y</string>
<key>UseKernelCache</key>
<string>Yes</string>
<key>RootUUID</key>
<string>get_the_raid_identifier_from_disk_utility</string>
<key>Kernel Flags</key>
<string>-v</string>
<key>PciRoot</key>
<string>1</string>
<key>Theme</key>
<string>Default</string>
<key>Timeout</key>
<string>1</string>
<key>device-properties</key>
<string>my_long_ass_string_for_nvidia_card</string>
</dict>
</plist>

chameleo_r1278.zip

Chameleon_2.0_RC5_r1278.pkg.txt

Link to comment
Share on other sites

<key>RootUUID</key>

<string>get_the_raid_identifier_from_disk_utility</string>

 

I have used OS X 10.6.x RAID 0 and RAID 10 on my machines for sometime. I experienced the Lion RAID issue real time and reverted to 10.6.8.

 

Now have read through this guide and having been there, my question is in Lion Disk Utility when I right click on the RAID in the left column (or on any partition) I do not see the UUID listed (as in Snow Leopard Disk Utility). Am I missing something?

 

Any help will be appreciated as I am locked into using SL on several machines until I have a good Lion RAID build process.

 

thank you,

neil

Link to comment
Share on other sites

neil43,

Try the following command in the Terminal to get the RAID UUID:

diskutil AppleRAID list | grep "Unique ID:" | awk '{print $3}'

 

regards,

MAJ

 

Either use this, or in Disk Utility, highlight the disk RAID disk (logical volume) and hit the "Info" button on the top menu will give you everything you need.

Link to comment
Share on other sites

I followed the guide exactly, but i still get "can't find" error. what am i doing wrong? please help

 

At first I have the same error too, it turned out that I used the wrong parameters. Double check your "UseKernelCache" key and string should be "Yes".

 

I try new release in my software raid 0 on OSX Snow...rename bootplist..but i have error kernel_chache

 

I only tested this with LION not Snow...you should google how to do RAID0 on Snow. Pretty much the same except for the Chameleon part.

Link to comment
Share on other sites

neil43,

Try the following command in the Terminal to get the RAID UUID:

diskutil AppleRAID list | grep "Unique ID:" | awk '{print $3}'

 

regards,

MAJ

 

Hey that is a great response. It does the job and is quick and easy.

 

Thank you,

neil

Link to comment
Share on other sites

At first I have the same error too, it turned out that I used the wrong parameters. Double check your "UseKernelCache" key and string should be "Yes".

 

 

 

I only tested this with LION not Snow...you should google how to do RAID0 on Snow. Pretty much the same except for the Chameleon part.

 

Sorry again only use this string ?

<key>UseKernelCache</key>
<string>Yes</string>
<key>RootUUID</key>
<string>get_the_raid_identifier_from_disk_utility</string>

Link to comment
Share on other sites

;)

 

I'have again error " cant find mach_kernel

 

this is a my org.boot plist

<key>DropSSDT</key>
<string>yes</string>
<key>GenerateCStates</key>
<string>Yes</string>
<key>GeneratePStates</key>
<string>Yes</string>
<key>GraphicsEnabler</key>
<string>Yes</string>
<key>Kernel</key>
<string>mach_kernel</string>
<key>Kernel Flags</key>
<string>arch=x86_64 npci=0x2000 -v</string>
<key>Theme</key>
<string>Default</string>
<key>Timeout</key>
<string>5</string>
<key>UseKernelCache</key>
<string>Yes</string>
	<key>RootUUID</key>
	<string>4E5F6CD0-202A-3D60-A2DC-7E7B04715766</string>

Link to comment
Share on other sites

:(

 

I'have again error " cant find mach_kernel

 

this is a my org.boot plist

<key>DropSSDT</key>
<string>yes</string>
<key>GenerateCStates</key>
<string>Yes</string>
<key>GeneratePStates</key>
<string>Yes</string>
<key>GraphicsEnabler</key>
<string>Yes</string>
<key>Kernel</key>
<string>mach_kernel</string>
<key>Kernel Flags</key>
<string>arch=x86_64 npci=0x2000 -v</string>
<key>Theme</key>
<string>Default</string>
<key>Timeout</key>
<string>5</string>
<key>UseKernelCache</key>
<string>Yes</string>
	<key>RootUUID</key>
	<string>4E5F6CD0-202A-3D60-A2DC-7E7B04715766</string>

 

I don't have a few options in my dsdt file like you do. I would suggest that you make it same as mine to start with then go from there. Sometimes, other options might cause conflict.

 

Also follow the RAID guide, and make sure that everything is looking good in your Boot OS X partitions specially the com.apple.boot.X folder must have kernelcache file in there.

Link to comment
Share on other sites

hello .... after installing raid0 lion on I noticed that not allow me to repair permissions with Disk Utility .... do you know something?

 

However I solved using kext wizard

 

you have to do it as SuperUser by typing:

 

sudo diskutil repairPermissions /

 

then enter your password.

Link to comment
Share on other sites

I have a question. This guide is for Chameleon to boot a RAID volume. Is it because Chameleon can't handle kernel cache or is it because of the software RAID by nature. I am implying if a RAID card supported by Lion such as Highpoint Rocketraid 620 is used to drive a pair of disks already set up, would Chameleon be able to see the volume and boot from there?

Link to comment
Share on other sites

I don't have a few options in my dsdt file like you do. I would suggest that you make it same as mine to start with then go from there. Sometimes, other options might cause conflict.

 

Also follow the RAID guide, and make sure that everything is looking good in your Boot OS X partitions specially the com.apple.boot.X folder must have kernelcache file in there.

I have a kernel cache .....but i have again issue " cant find mach_kernel cache"

Link to comment
Share on other sites

This guide is great! I followed this with supplement by Nathan7 and successfully setup a Stripe set to breath new life into my 2 slow HDs. Boot time is staved off 13 seconds, and the machine is much snappier. However, the kernel flag "npci=0x2000" used to advance verbose boot beyond "PCI Configuration Begins" no longer works in RAID set as it won't display anything else beyond PCI Configuration Begins.

It will continue to boot no problem, but will not display any more verbose. I checked both com.apple.Boot.Plist and org.chameleon.Boot.Plist to make sure the line is in there.

Any idea anyone?

Link to comment
Share on other sites

I have a kernel cache .....but i have again issue " cant find mach_kernel cache"

 

 

It appears you might have missed the last step of the guide in which you need to activate both partition of Boot OS X. Try that. Oh by the way, do not forget to create a kernel cache by doing this from Terminal:

 

sudo touch /Volumes/YourRaidVolume/System/Library/Extensions

 

I know it is very tiresome on the eyes when doing commands in Terminal as it is easy to mistype. One thing to look out for is response messages in terminal windows when you mistype.

Good Luck!

Link to comment
Share on other sites

It appears you might have missed the last step of the guide in which you need to activate both partition of Boot OS X. Try that. Oh by the way, do not forget to create a kernel cache by doing this from Terminal:

 

sudo touch /Volumes/YourRaidVolume/System/Library/Extensions

 

I know it is very tiresome on the eyes when doing commands in Terminal as it is easy to mistype. One thing to look out for is response messages in terminal windows when you mistype.

Good Luck!

 

 

 

I have this error

Last login: Tue Aug 16 20:39:03 on ttys000
Mac-Pro-di-Carmine:~ carmine$ sudo touch /Volumes/LionRaid/System/Library/Extensions
Password:
touch: /Volumes/LionRaid/System/Library/Extensions: No such file or directory
Mac-Pro-di-Carmine:~ carmine$

 

PS: How activate boot ?

Link to comment
Share on other sites

 Share

×
×
  • Create New...