Contribute
Register

Guide - Fusion Drive using tonymacx86 Tools & Chimera

neilhart

Moderator
Joined
May 25, 2010
Messages
2,686
Motherboard
ASRock Fatal1ty Z270 Gaming - ITX/ac
CPU
i7-7700T
Graphics
GTX960
Mac
  1. MacBook
  2. MacBook Pro
Mobile Phone
  1. iOS
fusion-drive.jpeg
Document Fusion Drive install with Mountain Lion 10.8.2 using Tony's tools and a Current Version of Chimera

This is a derived work where I have taken work done by others and wrapped them up to create a step by step guide to produce a bootable Fusion Drive using only the TonyMacX86 tool set and the current Chimera boot loader.

Edit inserted Nov 21, 2012 by neil - please note that several users of this guide have found that they loose the ability to connect to iCloud and iMessage does not work. They have found that if the boot uuid string (rd=uuid boot-uuid=Core Storage LV UUID) is deleted or never entered, the iCloud and iMessage functionality is maintained (assuming you had it to start).

I have confirmed that this edit does in fact restore my iCloud functionality. However some users have not reported the problem so it is up to the user to include or not include the boot uuid string. End of Edit by neil

The system that I used is one of several that i own named Lab1 and is configured as follows:

case - Cooler Mater mini tower
motherboard - Gigabyte GA-P55M-UD2
memory - 8 GB 1333MHz DDR3
cpu - Intel i7-860
SSd - Micro Center brand 60GB SATA II
Hdd - 250 GB Seagate and 500 GB WD both 3.5 inch
gpu - Zotac 9600 GT 512MB
psu - TigerPro 450 watt
Ethernet - on board NIC

The software used:

Mountain Lion 10.8.2 download from the app store
Chimera 1.11.1 package download from TonyMacX86 Downloads
Unibeast 1.5.3 package download from TonyMacX86 Downloads
Multibeast 5.1.3 package download from TonyMacX86 Downloads
Superduper! shareware downloaded from shirt-pocket.com
Pacifist shareware downloaded from http://pacifist.en.softonic.com/mac

Section 1 - Clean Mountain Lion 10.8.2 install

You will need to set up the system with a SSD and a hard drive that you want to be the "Fusion Drive" set. You can have other drives in the system. Today this means mounting and connecting the two SATA interface devices correctly in the system (with the power off) along with a bootable working system drive (this could be an external eSATA, USB or firewire drive). For ease of use, the system drive should be a ML 10.8.2 partition. And for this guide, we will clone the system drive onto the Fusion Drive.

For this guide I followed the Unibeast instructions found here to generate a USB installer:
http://www.tonymacx86.com/61-unibeast-install-os-x-mountain-lion-any-supported-intel-based-pc.html
And installed ML 10.8.2 to the first partition on one of the drives in my system.

I then downloaded Multibeast - Mountain Lion 5.1.3 from TonyMaxX86 Downloads to my new ML installation.
I ran Multibeast Easybeast and selected drivers for my audio and Ethernet. If you are following this guide and do not already have a running system, search the Mountain Lion Guides for instructions appropriate for your computer hardware.

1.jpg


Section 2 - Fusion Drive Creation

Download Chimera 1.11.1.pkg (or the latest version) from TonyMaxX86 Downloads.

Drag the Chimera package to the your desktop (from the Downloads directory).

If you do not already have the Pacifist package, download it from this link:
http://pacifist.en.softonic.com/mac or google for it. Install Pacifist to your Applications directory.

Open/run Pacifist. This is shareware and if you continue to use it you may want to purchase a license and avoid the count down timer.

Click the "Open Package" selection in Pacifist. Navigate to your desktop and select the Chimera package.

2.jpg


Navigate in the Pacifist window to the "i386" folder, click on it to select it, then click on the Extract To.. button, and select your desktop as the target. Confirm in the dialog that opens - click Extract button. Enter you password to proceed.

Pacifist puts a decompressed copy of the selected "i386" folder on your desktop. Close Pacifist.

Copy and paste the boot, boot0 and boot1h files from the i386 folder to your desktop.

Open Disk Utility and partition and format the SSD and hard drive that you will using in your Fusion Drive set; use GUID partition scheme and Mac OS Extended (journaled) format. In this guide I used drive names of AA for the 60 GB SSD and BB for the 500 GB hard drive.
My Mountain Lion is installed on the partition Mac-IB-1.


3.jpg


Close Disk Utility for now.

Open the Terminal application which is found in the Utility directory of the Applications directory. Some people shy away from using the Terminal, but hey it is as easy to use as email.

Type diskutil list [enter] and the system returns the following

Code:
Lab-1:~ neil$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *250.1 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Mac-IB-1                83.4 GB    disk0s2
   3:                  Apple_HFS Mac-IB-2                83.4 GB    disk0s3
   4:                  Apple_HFS Mac-IB-3                82.7 GB    disk0s4
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *60.0 GB    disk1
   1:                        EFI                         209.7 MB   disk1s1
   2:                  Apple_HFS AA                      59.7 GB    disk1s2
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk2
   1:                        EFI                         209.7 MB   disk2s1
   2:                  Apple_HFS BB                      499.8 GB   disk2s2
Lab-1:~ neil$

This tells us that the system has assigned the SSD as /dev/disk1 or disk1 and the hard drive as /dev/disk2 or disk2.
The /dev/disk0 is the hard disk that has our boot partition Mac-IB-1.

If you are not familiar with Apple format and partitions, you will note that every drive has a small first partition named EFI. This partition is hidden and you would not normally see it.

Type diskutil cs create "Fusion Drive" disk1 disk2 [enter] and the system returns the following

Code:
Lab-1:~ neil$ diskutil cs create "Fusion Drive" disk1 disk2
Started CoreStorage operation
Unmounting disk1
Repartitioning disk1
Unmounting disk
Creating the partition map
Rediscovering disk1
Adding disk1s2 to Logical Volume Group
Unmounting disk2
Repartitioning disk2
Unmounting disk
Creating the partition map
Rediscovering disk2
Adding disk2s2 to Logical Volume Group
Creating Core Storage Logical Volume Group
Switching disk1s2 to Core Storage
Switching disk2s2 to Core Storage
Waiting for Logical Volume Group to appear
Discovered new Logical Volume Group "A0E3CC23-DB6F-4320-85F3-B51F83715937"
Core Storage LVG UUID: A0E3CC23-DB6F-4320-85F3-B51F83715937
Finished CoreStorage operation
Lab-1:~ neil$

While this command is running you will see some system progress feed back. This command completes in a short time, may be 30 seconds in my example.

Type diskutil cs list [enter] and the system returns the following

Code:
Lab-1:~ neil$ diskutil cs list
CoreStorage logical volume groups (1 found)
|
+-- Logical Volume Group A0E3CC23-DB6F-4320-85F3-B51F83715937
    =========================================================
    Name:         Fusion Drive
    Size:         559441313792 B (559.4 GB)
    Free Space:   556648685568 B (556.6 GB)
    |
    +-< Physical Volume 3EBCD92A-4D9C-4484-B737-C542EDF46F56
    |   ----------------------------------------------------
    |   Index:    0
    |   Disk:     disk1s2
    |   Status:   Online
    |   Size:     59678507008 B (59.7 GB)
    |
    +-< Physical Volume 303E620A-63B5-4174-85C7-B2BCBA494179
        ----------------------------------------------------
        Index:    1
        Disk:     disk2s2
        Status:   Online
        Size:     499762806784 B (499.8 GB)
Lab-1:~ neil$

I want to call your attention to the Logical Volume Group "A0E3CC23-DB6F-4320-85F3-B51F83715937".

Type diskutil coreStorage createVolume A0E3CC23-DB6F-4320-85F3-B51F83715937 jhfs+ "MyFusionDrv" 100% [enter] and the system returns the following

Code:
Lab-1:~ neil$ diskutil coreStorage createVolume A0E3CC23-DB6F-4320-85F3-B51F83715937 jhfs+ "MyFusionDrv" 100%
Started CoreStorage operation
Waiting for Logical Volume to appear
Formatting file system for Logical Volume
Initialized /dev/rdisk3 as a 518 GB HFS Plus volume with a 49152k journal
Mounting disk
Core Storage LV UUID: [B]90DA42F0-436B-4544-B9F3-55AE6E4D5EE6[/B]
Core Storage disk: disk3
Finished CoreStorage operation
Lab-1:~ neil$

Also please copy the "Core Storage LV UUID: 90DA42F0-436B-4544-B9F3-55AE6E4D5EE6" as we need the bolded portion a little later.

In the above command you do have a choice of the name, I chose MyFusionDrv and you have a choice in the size. I chose 100% for now because the focus is setting up a Fusion drive set. If your requirements are otherwise you will have to dig out the details of what can be done and how to do it.

Type diskutil list [enter] and the system will respond as follows

Code:
Lab-1:~ neil$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *250.1 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Mac-IB-1                83.4 GB    disk0s2
   3:                  Apple_HFS Mac-IB-2                83.4 GB    disk0s3
   4:                  Apple_HFS Mac-IB-3                82.7 GB    disk0s4
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *60.0 GB    disk1
   1:                        EFI                         209.7 MB   disk1s1
   2:          Apple_CoreStorage                         59.7 GB    disk1s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk1s3
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk2
   1:                        EFI                         209.7 MB   disk2s1
   2:          Apple_CoreStorage                         499.8 GB   disk2s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk2s3
/dev/disk3
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS MyFusionDrv            *556.6 GB   disk3
Lab-1:~ neil$

And you will see the product of our effort so far. We now have a /dev/drive3 with the name of MyFusionDrv!
Also please note that the system has added a new helper partition to disk2 and disk3. This partition has the system name of "Boot OS X", and note the spaces in the partition name.

Open the Text Editor application. Copy and Paste the Terminal session to the Text Editor and save as a file to the desktop; use a name that means something to you such as "Fusion Drive Creation".

Now quit everything and reboot… we need to prove that we still have a solid system. You may need to go into the BIOS and set your boot drive order or press the appropriate F11 or which key brings up the boot device selector.

Once you are back on the Desktop you will see your Fusion Drive set (with the name that you assigned) assuming you have Finder set to show the drive icons.

Download Carbon Copy Cloner or SuperDuper! from the web (both are shareware, contribute if you continue to use these applications as they are very handy and do a great job). Clone your ML 10.8.2 boot system to the Fusion drive set.


4.jpg



Close the cloning software when it completes.

The task ahead is to make the Fusion Drive bootable.

Using Finder open a window to the root of the boot drive.


5.jpg


Select the /Extra folder and drag a copy to the Desktop.


6.jpg


Use Text Editor to open the org.chameleion.Boot.plist found in the Desktop copy of Extra folder.
This is a copy of the example machine.


7.jpg



In the Text Editor, edit the <string> line for <key>kernel Flags</key> adding "rd=uuid boot-uuid=" and paste in
the copied "Core Storage LV UUID" value as shown below. (note if you can not locate the uuid, use Terminal command diskutil cs list, and copy the Logical Volume string)



8.jpg


Save the edited org.chameleon.Boot.plist back overwriting the existing file in the Desktop copy of Extra.

Close the Text Editor.

Keep the faith … we have one more Terminal session and then we are through.

Open the Terminal

Type cd Desktop [enter] and the system returns the following

Code:
Lab-1:~ neil$ cd Desktop
Lab-1:Desktop neil$

Type sudo su [enter] and enter your pass word at the prompt; the system returns the following

Code:
Lab-1:Desktop neil$ sudo su

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:
sh-3.2#

The last statement put us into the Super User Admin mode.

Type diskutil list [enter] the system responds as follows

Code:
sh-3.2# diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *60.0 GB    disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:          Apple_CoreStorage                         59.7 GB    disk0s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *250.1 GB   disk1
   1:                        EFI                         209.7 MB   disk1s1
   2:                  Apple_HFS Mac-IB-1                83.4 GB    disk1s2
   3:                  Apple_HFS Mac-IB-2                83.4 GB    disk1s3
   4:                  Apple_HFS Mac-IB-3                82.7 GB    disk1s4
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk2
   1:                        EFI                         209.7 MB   disk2s1
   2:          Apple_CoreStorage                         499.8 GB   disk2s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk2s3
/dev/disk3
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS MyFusionDrv            *556.6 GB   disk3
sh-3.2#

Note that with the reboot, the listing of the drives has changed. Our Fusion Drive set are disk0 and disk2 (yours maybe other numbers and you need to use your number disks and not the example).

Now we are going to write boot0 to the MBR of each drive (Master Boot Record).

Type fdisk -f boot0 -u -y /dev/disk0 [enter] the system accepts the command and presents the new line.
Type fdisk -f boot0 -u -y /dev/disk2 [enter] the system accepts the command and presents the new line.

Now we are going to install boot1h to the boot sector of each "Boot OS X" partition.

Type dd if=boot1h of=/dev/rdisk0s3 [enter] the system responds as follows

Code:
sh-3.2# dd if=boot1h of=/dev/rdisk0s3
2+0 records in
2+0 records out
1024 bytes transferred in 0.007695 secs (133070 bytes/sec)
sh-3.2#

Type dd if=boot1h of=/dev/rdisk2s3 [enter] the system responds as follows

Code:
sh-3.2# dd if=boot1h of=/dev/rdisk2s3
2+0 records in
2+0 records out
1024 bytes transferred in 0.001290 secs (793747 bytes/sec)
sh-3.2#

Now we are going to copy boot and the Extra folder to the helper partitions.
You will note that the icon for the helper partition is present on the Desktop while the partition is mounted.

Type diskutil mount disk0s3 [enter] the system responds as follows

Code:
sh-3.2# diskutil mount disk0s3
Volume Boot OS X on disk0s3 mounted
sh-3.2#

Type cp boot /Volumes/Boot\ OS\ X/ [enter] the system accepts the command and presents the new line.

Type cp -R Extra /Volumes/Boot\ OS\ X/ [enter] the system accepts the command and presents the new line.

Type diskutil unmount disk0s3 [enter] the system response with the following

Code:
sh-3.2# diskutil unmount disk0s3
Volume Boot OS X on disk0s3 unmounted
sh-3.2#

Now we repeat this set of commands for disk2.

Type diskutil mount disk2s3 [enter] the system responds as follows

Code:
sh-3.2# diskutil mount disk2s3
Volume Boot OS X on disk2s3 mounted
sh-3.2#

Type cp boot /Volumes/Boot\ OS\ X/ [enter] the system accepts the command and presents the new line.

Type cp -R Extra /Volumes/Boot\ OS\ X/ [enter] the system accepts the command and presents the new line.

Type diskutil unmount disk2s3 [enter] the system response with the following

Code:
sh-3.2# diskutil unmount disk2s3
Volume Boot OS X on disk2s3 unmounted
sh-3.2#


Okay we are done… close the Terminal app and reboot to your Fusion Drive set.

Again you may need to go into the BIOS and set one the drives assigned to the Fusion Drive set the first boot drive.

So what you do if your new Fusion Drive is not bootable. Trouble shoot just as you would any other problem, boot using the -v argument.
Go back a check your work step by step through the guide.

You will want to move your data and applications onto the new Fusion Drive set and overtime you should see good performance loading of frequently used apps and data.
While I loaded about 300 GB of data to insure may system had to use both drives. It is snappy but not blinding fast (as would be expected).

Section 3 - Source Material

This thread: http://www.tonymacx86.com/mountain-...-fusion-drive-your-customac-6.html#post491261
This thread: http://www.tonymacx86.com/mountain-lion-desktop-guides/78409-create-fusion-drive-your-customac.html
and these threads point to these links;
http://jollyjinx.tumblr.com/post/346...ince-apple-has
http://support.apple.com/kb/HT5446
http://blog.fosketts.net/2011/08/05/...rage-commands/
http://www.tonymacx86.com/mountain-lion-desktop-guides/78465-understanding-using-fusion-drive.html

And TonyMacX86 site with tools and inspiration to support OS X related hacking.

Have fun hacking,
neil
 
very well explained tutorial, but what are the advantages of this kind of system?
Is it faster that a regular SSD+HDD system?
 
very well explained tutorial, but what are the advantages of this kind of system?
Is it faster that a regular SSD+HDD system?

You get the speed of a SSD combined with the storage capacity of a HDD.

So, by the looks of it, this is kind of like creating a RAID0 between a SSD and a HDD, right?

Great tutorial!
 
great tutorial ! i may try this when i find enough time to go through all the process.

@cpukid

actually this is more like using a LVM partition scheme on Linux (what is new here is the ability to aggregate two physical disks in a LVM, the rest of the technology (LVM) was already present in OSX 10.7.4, and for years in Linux and most Unixes).
 
Just to let you all know that I followed exactly all the steps (except that I SuperDuper'd my pre-existing 10.8.2 install along with all my apps and files to the newly created drive) and I'm typing right now from my brand new and shiny bootable Fusion Drive.

Thanks a lot for such an exhaustive guide, Neil!
 
great tuto! :thumbup::clap:
thanks
 
Excellent tutorial!

I'll think I'll test this soon. But I don't have much use of it because I already have 10.8.2 in my 128GB SSD and all my downloads and files are on a separate NFTS partition. I also have a dual boot with windows 8.

I still have the doubt about how to make a recovery partition with this scheme, I use to enable Find My Mac in the iCloud settings.

Cheers!
 
Anyone done this on a dual-booted system with Windows 7? Just curious how the homebrew Fusion Drive shows up on the Windows side.
 
Back
Top