Tabs

December 28, 2012

How to set up a Fusion drive on a Hackintosh

Recently, Apple released the Fusion Drive, a new technology that increases hard disk performance by setting up a 128GB solid state disk and a 1TB normal hard disk to work together as a single virtual drive. By allocating most of the heavy lifting to its solid state portion, the Fusion Drive allows for much faster overall performance while still providing a lot of storage space.

Since the Fusion Drive is a proprietary technology, it's usually unavailable to PCs. However, you can still set up your own Fusion Drive on a Hackintosh. Fusion Drives are set up in an extremely similar way to RAID 0 arrays, an alternative different method for increasing hard disk performance. We've previously covered how to set up a RAID 0 array on your Hackintosh; setting up a Fusion Drive isn't really isn't much harder. Interested? Read on.

WARNING: Like RAID 0 arrays, Fusion Drives do not offer any file redundancy; if either disk in the Fusion setup fails, the entire drive fails. So while a Fusion Drive increases performance, it also doubles the failure rate. Be sure to consider these risks before reading on.

Overview
The process for setting up a Fusion Drive on Mountain Lion can be divided into three main parts. First, you need to create an actual Fusion drive using Terminal commands built into OS X Mountain Lion. Then, clone the contents of your current Mac OS X installation onto that Fusion Drive.

The last part of the process is the most important. When Mac OS X sets up a Fusion Drive, it creates a small "boot partition" for both the solid state disk and normal hard disk inside the drive. To be able to boot your computer from the Fusion Drive, you must install Hackintosh boot files onto all of these boot partitions. Since these boot partitions are system-protected by default, you can only modify them through Terminal. Fortunately, the process itself isn't too difficult.

NOTE: Though this guide refers to Chimera bootloader, it will also work for Chameleon bootloader, which is essentially the same thing.

Requirements
  • A working Hackintosh running Mountain Lion: For the purposes of this guide, you need an already-working Hackintosh. Check out our guide to installing OS X Mountain Lion on a PC for more information.

  • 1 extra solid state disk and 1 extra hard disk: Unfortunately, because of the way a Fusion Drive must be set up on a Hackintosh, you cannot install Mac OS X directly onto a Fusion Drive. Instead, you must own one extra SSD and one extra hard disk, in addition to the hard disk currently being used by your working Hackintosh. These hard disks will make up the Fusion Drive itself. 

  • Standalone installer for Chimera bootloader: Chimera is the bootloader that most Hackintoshes use to start Mac OS X. In this guide, you'll be writing several boot files, located inside the Chimera installer, onto the boot partitions of the disks in your Fusion Drive. Registration on tonymacx86.com is required to download Chimera.

  • unpkg: This app extracts the contents of .pkg installer files. You'll need to use it to access the boot files inside Chimera bootloader.

  • Carbon Copy Cloner / SuperDuper: These apps allow you to clone your Mac OS X installation onto a new hard drive (or in this case, a new Fusion Drive). Though both apps technically cost money, Carbon Copy Cloner has a 30-day free trial, and SuperDuper has a limited freeware version that lasts forever. Both of them work for the purposes of this guide.

Step 1: Create a Fusion Drive
Boot into your existing installation of Mac OS X. Open Disk Utility (this app is located in Applications -> Utilities). On the left-hand column of Disk Utility, you should see the solid state disk and hard disk that you're using for your Fusion Drive. If you haven't already, select each disk, and click the "Erase" tab. From here, name your drives anything you want (in the screenshot below, I've named my disks "Solid State Drive" and "Hard Disk Drive"), and erase and reformat your disks as "Mac OS Extended (Journaled)".

Once you have formatted the two disks appropriately, you can now combine them into a Fusion Drive. To do this, open Terminal (located in Applications -> Utilities). Enter the following:

diskutil list

This will output a list of all of your disks. Find and remember the identifiers of the solid state disk and hard disk that you want to turn into a Fusion Drive. In the screenshot below, my disk identifiers are disk0 and disk1. Then, enter the following:

diskutil cs create "Fusion Drive" DiskIdentifier1 DiskIdentifier2

Replace "DiskIdentifier1" and "DiskIdentifier2" (don't include the quotation marks) with the disk identifiers that you remembered earlier. This will create a new Fusion Drive out of the two mentioned disks.

However, this new Fusion Drive still needs to be formatted properly. Copy the serial code in the "Logical Volume Group" line of the Terminal output (without quotation marks). In the screenshot above, my serial code is highlighted. Then, enter the following:

diskutil coreStorage createVolume SerialCode jfhs+ "Name of Fusion Drive" 100%

Replace "SerialCode" (don't include the quotation marks) with the serial code your copied earlier. Also, replace "Name of Fusion Drive" with the intended name of your Fusion Drive (keep the quotation marks this time). In the screenshot below, I'm naming my drive "Fusion Funtime". This command will format your new Fusion Drive, creating a single partition in the "HFS+" format that takes up "100%" of the drive's space.

Finally, your Fusion Drive will be properly formatted. Reboot your computer-- this is necessary for Mac OS X to reorder the disk identifiers for your new Fusion Drive.

Step 2: Make Chimera bootloader work with your Fusion Drive
Chimera does not work with Fusion Drives by default. To fix this, open Finder and go to the base of your main hard disk. There should be a folder called "Extra". This folder is installed by default when you run UserDSDT or Easybeast in Multibeast; it contains several other important boot files needed to make your Hackintosh work, including the configuration files for Chimera. Open this folder, and then open the file "org.Chameleon.boot.plist" with TextEdit.

Add the following lines anywhere between <dict> and </dict>:

<key>UseKernelCache</key>
<string>Yes</string>

The kernel cache is a feature in Mountain Lion that protects against system failures during bootup. For a Fusion Drive to work on a Hackintosh, this feature needs to be turned on.

You now have a functioning Fusion Drive, but it's completely empty. To fix this, proceed to the next step.

Step 3: Clone Mac OS X onto the Fusion Drive
Open Carbon Copy Cloner or SuperDuper (whichever you prefer). Select the hard drive that your Hackintosh is currently booting off as the "Source", and select the new Fusion Drive as the "Destination". On Carbon Copy Cloner, select the option "Delete anything that doesn't exist on the source" as well.

Click "Clone", and let the cloning process begin. Within an hour or two (more or less, depending on the details of your particular setup), your Fusion Drive will contain a full copy of your current Mac OS X installation.

Step 4: Prepare boot files
Start unpkg, and drag the Chimera file that you downloaded onto the unpkg window. Unpkg will create a folder named "Chimera" inside the same folder where the unpkg app is located.

In the "Chimera" folder, go to usr -> standalone -> i386 and copy all of the files inside onto the desktop of Mac OS X (or some other random place where you can find the files later). These are important boot files that Chimera bootloader uses to start Mac OS X on Hackintoshes.

Next, open Finder and go to the base of your main hard disk. Drag the "Extra" folder onto the desktop of Mac OS X as well.

You will need these files in the next step, where you manually install Chimera bootloader onto your Fusion Drive.

Step 5: Make your Fusion Drive bootable
To make your Fusion Drive bootable, you must install Chimera bootloader on the special boot partitions inside the disks that make up your Fusion Drive. However, since these boot partitions are hidden, you must install Chimera on them manually, through Terminal. Open Terminal (located in Applications -> Utilities). Enter the following:

diskutil list

Again, this will output a list of all of your disks. Find and remember the identifiers of the disks inside your Fusion Drive. In the screenshot below, my disk identifiers are disk0 and disk1. Then, remember the identifiers of the "Boot OS X" partitions inside those disks (these are the special boot partitions I mentioned earlier). In the screenshot below, my partition identifiers are disk0s3 and disk1s3.

Once you've remembered the identifiers of your Fusion Drive, enter the following:

sudo su

Terminal will ask you for your system password. Type it in (no characters will show up on the screen-- this is normal). This will grant you superuser access, so that you can edit the system-protected boot partitions inside your Fusion Drive. Next, enter the following:

cd Desktop

This command changes the folder that Terminal is working on (cd stands for "change directory") to the desktop, where you put all of the Chimera boot files earlier. Then, type the following lines (enter each one separately):

fdisk -f boot0 -u -y /dev/DiskIdentifier1

fdisk -f boot0 -u -y /dev/DiskIdentifier2

dd if=boot1h of=/dev/PartitionIdentifier1

dd if=boot1h of=/dev/PartitionIdentifier2

Replace "DiskIdentifier1", "DiskIdentifier2", "PartitionIdentifier1", and "PartitionIdentifier2" (don't include quotation marks) with the identifiers that you remembered earlier. In the screenshot below, my disk identifiers are disk0 and disk1, and my partition identifiers are disk0s3 and disk1s3. These four commands will write the "boot0" and "boot1h" files from your desktop in Mac OS X onto the disks within the Fusion Drive.

After writing boot0 and boot1h onto your Fusion Drive, you need to actually mount the disks in your Fusion Drive and move a few more boot files onto there. Enter the following:

diskutil mount PartitionIdentifier1

cp boot /Volumes/"Boot OS X"

cp -R Extra /Volumes/"Boot OS X"

diskutil unmount PartitionIdentifier1

diskutil mount PartitionIdentifier2

cp boot /Volumes/"Boot OS X"

cp -R Extra /Volumes/"Boot OS X"

diskutil unmount PartitionIdentifier2

Replace "PartitionIdentifier1" and "PartitionIdentifier2" (don't include quotation marks) with the first and second partition identifiers that you remembered earlier. These eight commands will mount the disks that make up your Fusion Drive, copy the "boot" file and "Extra" folder from your desktop onto the boot partitions of those disks, and unmount the disks.

Once you have successfully written and copied all of the necessary boot files onto the two disks in your Fusion Drive, you will finally be able to boot your Hackintosh straight from that drive. Congratulations!

Step 6: Success!
Reboot your Hackintosh. At your bootscreen, in addition to your previously existing hard disk, you should now see your Fusion Drive appear as an option. In my case, there are two separate icons-- selecting either icon should work.

Here are a few ending notes about setting up a Fusion Drive on Mac OS X for a Hackintosh:

  • You'll probably want to change the hard disk priority in the BIOS of your motherboard so that one of the disks in your Fusion Drive has highest priority when your computer starts (either disk should work). Check out Step 4 of our Hackintosh dual-booting guide for more details.
  • Since Fusion Drives have a much higher failure rate than normal drives, be sure to make weekly (or possibly daily) backups of your files. Check out our guide to backing up your Hackintosh for more details.
  • After setting up a Fusion Drive, you will not be able to edit the contents of your "Extra" folder normally. Instead of relying on the "Extra" folder located in its normal location, Mac OS X will rely on the "Extra" folders on the boot partitions inside your Fusion Drive. These boot partitions are normally hidden.