OSx86: Mac Pro (Mountain Lion)をFusion Driveにしてみました
Fusion DriveはSSDとHDDの何でもかんでも一時的にSSDに保存して、書類や音楽ファイルなどのデータは読み込み速度の遅いHDDに、アプリやシステムファイルなどは読み込み速度の速いSSDにユーザーの知らないところでそれぞれ保存してくれるというAppleが新モデルのiMacやMac miniに搭載している技術です。
そのFusion DriveをHackintoshのMac Proでやってしまおうというのが今回の記事です。記事の長さをみるとやりたくなくなるかも知れませんが案ずるより産むがなんとかいいますし。サクッとやっちゃいましょう、サクッと。
構成はこちら。環境によってパッケージのバージョンやディスク番号が違う場合があるのでそこは自分の環境に合わせて変更していってください。
必要なもの
- SSD
- HDD
- USBメモリ(Unibeast用、データ保存用)
- Pacifist
- Chimera
- Unibeast
- 折れない心と時間
まず、今あるMacのバックアップをTime Machineを使ってとります。バックアップがあれば、Fusion Driveにしても今までの環境に復元できます。バックアップをとらないと何かあった時に困りまるので絶対にとってください。まだOSx86、Hackintoshやったことないという人でいきなりFusion Driveにインストールしたいという人はバックアップはいりません。
2. Fusion Drive化
1. bootファイルの取り出しとか
- tonymacx86からChimeraをダウンロードします。
- ChimeraをDesktopにおきます。
- Pacifistをhttp://pacifist.en.softonic.com/macからダウンロードします。
- Pacifistを開きます。Pacifistはシェアウェアなので購入するか、15秒待ってください。待てば購入する必要はありません。
- "Open Package"を押してChimeraを選択します。
- Contents of v111.pkg → usr → standalone → i386と進んでいってください。
- i386を選択した状態で、Extract To...をクリックして、i386フォルダをデスクトップに取り出します。途中パスワードを求められるので入力してください。取り出したらPacifistは終了して大丈夫です。
- デスクップのi386フォルダのなかにあるboot, boot0, boot0md, boot1hをすべてUSBメモリにコピーします。後で使います。
- HDDをMac OS 拡張(ジャーナリング)、オプション→GUIDパーティションテーブルでフォーマットします。名前はわかりやすいのがいいとおもいます。僕はDataにしました。
- システムを終了します。
2. Fusion Drive作成
- ここからはTerminalでの作業となります。OS XインストーラにあるTerminalを使うため、Unibeastを起動します。Unibeastなんてとっくに消したという人も、もう一度USBに入れてください。
- UnibeastでOS Xインストーラが起動したらTerminalを開きます。
- diskutil listと入力します。すると下のようにかえってきて、SSDが/dev/disk0、HDDが/dev/disk1として割り当てられていることがわかります。
-bash-3.2# diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *128.0 GB disk0 1: EFI 209.7 MB disk0s1 2: Apple_CoreStorage 127.7 GB disk0s2 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *2.0 TB disk1 1: EFI 209.7 MB disk1s1 2: Apple_CoreStorage 2.0 TB disk1s2
- diskutil cs create "Fusion Drive" disk0 disk1と入力します。30秒くらいすると下のようにかえってきます。
-bash-3.2# diskutil cs create "Fusion Drive" disk0 disk1 Started CoreStorage operation Unmounting disk0 Repartitioning disk0 Unmounting disk Creating the partition map Rediscovering disk0 Adding disk0s2 to Logical Volume Group Unmounting disk1 Repartitioning disk1 Unmounting disk Creating the partition map Rediscovering disk1 Adding disk1s2 to Logical Volume Group Creating Core Storage Logical Volume Group Switching disk0s2 to Core Storage Switching disk1s2 to Core Storage Waiting for Logical Volume Group to appear Discovered new Logical Volume Group "106B3B58-8AAE-496E-B0CE-31251598A8DE" Core Storage LVG UUID: 106B3B58-8AAE-496E-B0CE-31251598A8DE Finished CoreStorage operation
- disk cs listと入力します。
-bash-3.2# diskutil cs list CoreStorage logical volume groups (1 found) | +-- Logical Volume Group 106B3B58-8AAE-496E-B0CE-31251598A8DE ========================================================= Name: Fusion Drive Size: 2127746662400 B (2.1 TB) Free Space: 2120232296448 B (2.1 TB) | +-< Physical Volume C2C5676C-5CB1-4328-8DF9-F7DF03947079 | ---------------------------------------------------- | Index: 0 | Disk: disk0s2 | Status: Online | Size: 127691702272 B (127.7 GB) | +-< Physical Volume 0D1236E8-8E9D-4170-8A0D-7F204EDA04D3 ---------------------------------------------------- Index: 1 Disk: disk1s2 Status: Online Size: 2000054960128 B (2.0 TB)
Logical Volume Group 106B3B58-8AAE-496E-B0CE-31251598A8DEに注目します。 - diskutil coreStorage createVolume 106B3B58-8AAE-496E-B0CE-31251598A8DE jhfs+ "Macintosh" 100%と入力します。"Macintosh"の部分は自分の好きな名前にしてください。
-bash-3.2# diskutil coreStorage createVolume 106B3B58-8AAE-496E-B0CE-31251598A8DE jhfs+ "Macintosh" 100% Started CoreStorage operation Waiting for Logical Volume to appear Formatting file system for Logical Volume Initialized /dev/rdisk15 as a 2 TB HFS Plus volume with a 163840k journal Mounting disk Core Storage LV UUID: 05220BD5-A3C7-4A2B-B8FE-2615A024A815 Core Storage disk: disk15 Finished CoreStorage operation
あとで使うのでCore Storage LV UUID: 05220BD5-A3C7-4A2B-B8FE-2615A024A815は、メモをとるか他に用意したUSBメモリにcommand+sでコンソールの出力を保存するかして覚えておいてください。忘れると失敗します。 - diskutil listと入力します。
-bash-3.2# diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *128.0 GB disk0 1: EFI 209.7 MB disk0s1 2: Apple_CoreStorage 127.7 GB disk0s2 3: Apple_Boot Boot OS X 134.2 MB disk0s3 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *2.0 TB disk1 1: EFI 209.7 MB disk1s1 2: Apple_CoreStorage 2.0 TB disk1s2 3: Apple_Boot Boot OS X 134.2 MB disk1s3 /dev/disk2 #: TYPE NAME SIZE IDENTIFIER 0: Apple_HFS Macintosh *2.1 TB disk2
/dev/disk0と/dev/disk1に"Apple_Boot Boot OS X"が現れ、SSDとHDDの容量を足したFusion Driveが/dev/disk2/に現れたことがわかります。
3. OS Xのインストール
- Terminalを終了してそのままOS Xのインストールを始めます。インストール先を選ぶ際にはSSDとHDDを搭載しているにもかかわらずひとつのドライブとしてみえているはずです。
- インストールが終わったら再起動します。
- 下のような画面になるのでMacintoshを選択してエラーを吐き出されてから、USB(Unibeast)を選択します。
- USBを選択したはずなのにあら不思議、OS Xが起動しました。
- OS Xが起動したらMultibeastでセットアップします。Multibeastは今まで使ってた環境のと同じようにインストールすればOKです。初めてでMultibeastの設定がよくわからない人はこの記事を参考にしてください。
4. 起動するようにする
通常、Multibeastをインストールすればおわりですが、Fusion Driveの場合はまだあります。
- Macintosh直下(システム、ユーザ、ライブラリがあるところ)のExtraフォルダをDesktopにコピーします。
- いちばんはじめにPacifistを使って取り出したboot, boot0, boot0md, boot1hもUSBメモリからデスクトップにコピーします。
- デスクトップにコピーしたExtra内のorg.chameleon.Boot.plistをテキストエディタで開きます。
- <key>Kernel Flags</key>の<string>darkwake=0</string>に"rd=uuid boot-uuid=Core Storage LV UUID"を追加します。Core Storage LV UUIDは2.Fusion Driveの作成の6でメモや保存しておいた文字列です。ここでは05220BD5-A3C7-4A2B-B8FE-2615A024A815だったので、"rd=uuid boot-uuid=05220BD5-A3C7-4A2B-B8FE-2615A024A815"を追加します。
- Terminalを開きます。
- cd Desktopと入力してデスクトップに移動します。
- sudo suと入力します。パスワードを求められるので入力します。
Mac-Pro:~ kobarei$ cd Desktop/ Mac-Pro:Desktop kobarei$ 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:
- diskutil listと入力します。
sh-3.2# diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *128.0 GB disk0 1: EFI 209.7 MB disk0s1 2: Apple_CoreStorage 127.7 GB disk0s2 3: Apple_Boot Boot OS X 134.2 MB disk0s3 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *2.0 TB disk1 1: EFI 209.7 MB disk1s1 2: Apple_CoreStorage 2.0 TB disk1s2 3: Apple_Boot Boot OS X 134.2 MB disk1s3 /dev/disk2 #: TYPE NAME SIZE IDENTIFIER 0: Apple_HFS Macintosh *2.1 TB disk2
これからここで入力するdisk0やdisk0s1は環境によって違うので注意してください。 - boot0をMBRに書き込みます。
fdisk -f boot0 -u -y /dev/disk0と入力します。
新しいラインが出てきて入力できるようになったら、
fdisk -f boot0 -u -y /dev/disk1と入力します。 - boot1hをSSDとHDDそれぞれの"Boot OS X"パーティションに書き込みます。
dd if=boot1h of=/dev/rdisk0s3と入力します。sh-3.2# dd if=boot1h of=/dev/rdisk0s3 2+0 records in 2+0 records out 1024 bytes transferred in 0.000250 secs (4098251 bytes/sec)
次にdd if=boot1h of=/dev/rdisk1s3と入力します。sh-3.2# dd if=boot1h of=/dev/rdisk1s3 2+0 records in 2+0 records out 1024 bytes transferred in 0.000250 secs (4098251 bytes/sec)
- Extraフォルダをそれぞれのパーティションにコピーします。
diskutil mount disk0s3と入力します。(SSDの"Boot OS X"パーティションをマウント)sh-3.2# diskutil mount disk0s3 Volume Boot OS X on disk0s3 mounted
cp boot /Volumes/Boot\ OS\ X/と入力します。 (bootファイルのコピー)
cp -R Extra /Volumes/Boot\ OS\ X/と入力します。 (Extraフォルダのコピー)
diskutil unmount disk0s3と入力します。(SSDの"Boot OS X"パーティションをアンマウント)sh-3.2# diskutil mount disk0s3 Volume Boot OS X on disk0s3 mounted
- 同じことをHDDの"Boot OS X"パーティションでくりかえします。
diskutil mount disk1s3と入力します。sh-3.2# diskutil mount disk1s3 Volume Boot OS X on disk1s3 mounted
cp boot /Volumes/Boot\ OS\ X/と入力します。
cp -R Extra /Volumes/Boot\ OS\ X/と入力します。
diskutil unmount disk1s3と入力します。sh-3.2# diskutil mount disk1s3 Volume Boot OS X on disk1s3 mounted
これでUnibeastのUSBをささなくても起動するようになりました。以上でFusion Drive化の設定は終了です。バックアップをとってある人はもういちどUnibeastを起動してTime Machineから前の環境を復元してください。ただし、この場合はMultibeastでChimeraを入れる必要はありません。復元するだけで大丈夫です。
Fusion Drive化前
Fusion Drive化後
ドライブがひとつになっているのがわかります。
速度ベンチマーク
Fusion Drive化前にベンチマークをとり忘れるというヘマをしたので比較はできませんがこんなかんじです。SSDはPlextor M2P 128GBで公表値がWrite: 320MB/s, Read: 500MB/sなのでまぁ普通の結果なのではないでしょうか。HDDじゃこんなスピードまずでないので、SSDに書き込んでいるのがわかります。正規Mac miniのFusion Driveのベンチマーク速度はこの記事にあります。
iTunesフォルダの移動
iTunesフォルダが80GBあり、これまでTime CapsuleからHDDに移動する際には3時間くらいかかっていたのが、Fusion Driveだと1時間ほどで終わりそうです。恐るべしFusion Drive.
感想
Fusion Drive化するまえは、システムファイルはSSD・データはHDDで分ければいいじゃんと思っていたのですが、それを自動でやってくれるのがこれほどまでに便利なものとは思いませんでした。
追記:諸事情で今回使ったHDDとSSDだけでWindowsを入れなければならなくなり、Fusion Driveをなくなく解除しました。Time Capsuleが自動的にFusion Drive以前の状態のバックアップをとってくれてたので多少楽にOS Xを復活させることができました。アップデートで起動できなくなったりする不安定なOSx86でFusion Driveをやるメリットはあまりないような気がします。
注意
これはOSx86プロジェクトであって、MacBook ProやiMacなどの純正MacでFusion Driveを実現したわけではありません。あくまで自作機にOS Xをいれようというこころみのひとつです。よってこの手順を純正Macで実行してもFusion Driveは実現できません。純正MacでのFusion Driveの実現方法はjollyjinx.tumblr.comなどを御覧ください。
Fusion Driveを自作するさいは自己責任でお願いします。
iTunesフォルダが80GBあり、これまでTime CapsuleからHDDに移動する際には3時間くらいかかっていたのが、Fusion Driveだと1時間ほどで終わりそうです。恐るべしFusion Drive.
感想
Fusion Drive化するまえは、システムファイルはSSD・データはHDDで分ければいいじゃんと思っていたのですが、それを自動でやってくれるのがこれほどまでに便利なものとは思いませんでした。
追記:諸事情で今回使ったHDDとSSDだけでWindowsを入れなければならなくなり、Fusion Driveをなくなく解除しました。Time Capsuleが自動的にFusion Drive以前の状態のバックアップをとってくれてたので多少楽にOS Xを復活させることができました。アップデートで起動できなくなったりする不安定なOSx86でFusion Driveをやるメリットはあまりないような気がします。
注意
これはOSx86プロジェクトであって、MacBook ProやiMacなどの純正MacでFusion Driveを実現したわけではありません。あくまで自作機にOS Xをいれようというこころみのひとつです。よってこの手順を純正Macで実行してもFusion Driveは実現できません。純正MacでのFusion Driveの実現方法はjollyjinx.tumblr.comなどを御覧ください。
Fusion Driveを自作するさいは自己責任でお願いします。
- Ref. tonymacx86
Seagate Momentus XT 2.5inch 750GB Hybrid 8GB SLC NAND付 32MB 7200rpm SATA6.0Gb/s ST750LX003 Seagate 売り上げランキング : 1278 Amazonで詳しく見る |