Facebookもチェック!

2012/11/24

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
  • 折れない心と時間
1. Time Machineにバックアップをとる
まず、今あるMacのバックアップをTime Machineを使ってとります。バックアップがあれば、Fusion Driveにしても今までの環境に復元できます。バックアップをとらないと何かあった時に困りまるので絶対にとってください。まだOSx86、Hackintoshやったことないという人でいきなりFusion Driveにインストールしたいという人はバックアップはいりません。

2. Fusion Drive化
1. bootファイルの取り出しとか
  1. tonymacx86からChimeraをダウンロードします。
  2. ChimeraをDesktopにおきます。
  3. Pacifistをhttp://pacifist.en.softonic.com/macからダウンロードします。
  4. Pacifistを開きます。Pacifistはシェアウェアなので購入するか、15秒待ってください。待てば購入する必要はありません。
  5. "Open Package"を押してChimeraを選択します。
  6. Contents of v111.pkg → usr → standalone → i386と進んでいってください。
  7. i386を選択した状態で、Extract To...をクリックして、i386フォルダをデスクトップに取り出します。途中パスワードを求められるので入力してください。取り出したらPacifistは終了して大丈夫です。
  8. デスクップのi386フォルダのなかにあるboot, boot0, boot0md, boot1hをすべてUSBメモリにコピーします。後で使います。
  9. HDDをMac OS 拡張(ジャーナリング)、オプション→GUIDパーティションテーブルでフォーマットします。名前はわかりやすいのがいいとおもいます。僕はDataにしました。
  10. システムを終了します。
2. Fusion Drive作成
  1. ここからはTerminalでの作業となります。OS XインストーラにあるTerminalを使うため、Unibeastを起動します。Unibeastなんてとっくに消したという人も、もう一度USBに入れてください。
  2. UnibeastでOS Xインストーラが起動したらTerminalを開きます。
  3. 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
  4. 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
  5. 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に注目します。
  6. 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
  7. あとで使うのでCore Storage LV UUID: 05220BD5-A3C7-4A2B-B8FE-2615A024A815は、メモをとるか他に用意したUSBメモリにcommand+sでコンソールの出力を保存するかして覚えておいてください。忘れると失敗します。
  8. 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
  9. /dev/disk0と/dev/disk1に"Apple_Boot Boot OS X"が現れ、SSDとHDDの容量を足したFusion Driveが/dev/disk2/に現れたことがわかります。
3. OS Xのインストール
  1. Terminalを終了してそのままOS Xのインストールを始めます。インストール先を選ぶ際にはSSDとHDDを搭載しているにもかかわらずひとつのドライブとしてみえているはずです。
  2. インストールが終わったら再起動します。
  3. 下のような画面になるのでMacintoshを選択してエラーを吐き出されてから、USB(Unibeast)を選択します。
  4. USBを選択したはずなのにあら不思議、OS Xが起動しました。
  5. OS Xが起動したらMultibeastでセットアップします。Multibeastは今まで使ってた環境のと同じようにインストールすればOKです。初めてでMultibeastの設定がよくわからない人はこの記事を参考にしてください。
4. 起動するようにする
通常、Multibeastをインストールすればおわりですが、Fusion Driveの場合はまだあります。
  1. Macintosh直下(システム、ユーザ、ライブラリがあるところ)のExtraフォルダをDesktopにコピーします。
  2. いちばんはじめにPacifistを使って取り出したboot, boot0, boot0md, boot1hもUSBメモリからデスクトップにコピーします。
  3. デスクトップにコピーしたExtra内のorg.chameleon.Boot.plistをテキストエディタで開きます。
  4. <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"を追加します。
  5. Terminalを開きます。
  6. cd Desktopと入力してデスクトップに移動します。
  7. 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:
    
  8. 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は環境によって違うので注意してください。
  9. boot0をMBRに書き込みます。
    fdisk -f boot0 -u -y /dev/disk0と入力します。
    新しいラインが出てきて入力できるようになったら、
    fdisk -f boot0 -u -y /dev/disk1と入力します。
  10. 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)
  11. 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
  12. 同じことを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を自作するさいは自己責任でお願いします。


Seagate Momentus XT 2.5inch 750GB Hybrid 8GB SLC NAND付 32MB 7200rpm SATA6.0Gb/s ST750LX003Seagate Momentus XT 2.5inch 750GB Hybrid 8GB SLC NAND付 32MB 7200rpm SATA6.0Gb/s ST750LX003

Seagate
売り上げランキング : 1278

Amazonで詳しく見る
スポンサーリンク

0 コメント:

コメントを投稿