Mac信者のHackintosh修行

惑星で一番美しいOSが1台でも多くのマシンで動くことを目指します。

macOSをバニラに保ってインストールする

macOSをインストールしてHackintosh をつくる方法、流儀、ツールはいくつかあります。ここでは、一番おすすめの、バニラな方法を紹介します。macOSをできる限りオリジナルなままに保ってインストールする方法です。バニラというのはVanillaアイスクリームのバニラで、チョコレート味とか抹茶味みたいに手を加えてない、素材のままという意味です。

バニラな方法では、macOSが入っているメインのパーティションの内容には一切手を加えないで、実機と全く同じ状態にしておきます。この方法では、カーネルカーネル拡張(kextファイル)を書き換えません。HackintoshのためのkextファイルもmacOSパーティションには追加しません。

バニラのメリット

バニラな構成では、macOSメインのパーティションは本物のMac(実機)と同一です。なので、Hackintoshのドライブを本物のMacに取りつければ、そのまま起動します。macOSから見ると、このパーティションが世界の全てです。なので、macOSのバージョンアップをした時、書き換わるのもmacOSが入っているパーティションだけです。この部分に手を加えていると、バージョンアップのたびに対応し直す必要があります。しかしバニラに保っておけば対応の必要が無く、実機と同じようにApp Storeからバージョンアップするだけでの簡単な操作で行えます。

macOSのインストール手順

macOSをバニラにインストールする一般的な手順を書いておきます。Hackintoshに必要なファイルを、macOSメインパーティションではなく、ESP (EFI System Partition)に置くのがポイントです。 

  1. ボリュームをディスクユーティリティでフォーマットする
  2. 通常のインストーラを使ってmacOSをインストールする
  3. Clover EFI BootloaderをESPにインストールする
  4. Cloverの設定ファイルconfig.plistを目的に応じてカスタマイズする
  5. 必要なkextファイルを集めてESPのkext用フォルダに入れる

手順1と手順2は、通常のmacOSインストール手順です。実際のMacintoshmacOSをインストールするのと同じ手順です。実機ならばm.2/SATA/USBなどで接続したボリュームをフォーマットしてそこにインストールします。Hackintoshならば、macOSインストーラが起動するUSBメモリを以下の手順:

siroanko.hatenablog.com

で作成して、これで起動して、ディスクユーティリティ.appを使って対象ボリュームをフォーマットして、macOSインストーラを使ってインストールします。

手順4と手順5は、macOSとHackintosh用ブートローダのCloverをインストールした後の、「ポストインストール」とも呼ばれる作業です。Hackintoshが正しく動くようにする作業で、色々なノウハウが必要です。手順3、手順4、手順5は、以下の記事を参照してください。

siroanko.hatenablog.com

手順3は、macOSUEFIマザーボードで起動させるためにUEFIブートローダであるCloverをインストールする手順です。Cloverはオープンソースで開発されているツールです。

Cloverのインストーラでは、Hackintoshに必要なファイルを置く場所を選択できます。一つの選択肢は、macOSが入っているメインパーティションのルートです。もう一つは、システムEFIシステムパーティションです(頭文字でESP)。

前者の場合、macOSパーティションにファイルを追加するので、バニラに保つポリシーからは外れます。

後者でファイルが追加されるESPは、macOSでドライブをフォーマットすると自動的に作ってくれるパーティションの一つです。UEFIマザーボードが起動するときに使用するファイルが置かれる場所です。しかしmacOSはこのパーティションを使用しません。なので、ESPにHackintoshに必要なファイルを全て置けば、バニラなインストールが実現できます。

ESPを利用するためには、Cloverのインストーラで、カスタムインストールを選択し、「ESPにインストール」にチェックマークを付けます。

f:id:siroanko:20170910152836p:plain

この記事の以下では、

  • フォーマット後に出来上がるパーティション構成と、
  • バニラを目指してCloverをインストールした後のESPの内容

を説明します。

バニラなディスク構成

バニラな方法で使用するESPは、macOSでドライブをフォーマットすると自動的に作ってくれます。試しに、ディスクユーティリティを使って120GBのSSDをまっさらにフォーマットしてみました。ターミナルからdiskutil listとするとフォーマット後のパーティションの一覧が出てます。例えば以下のようになります。これは全てディスクユーティリティが作ってくれるパーティションです。ただし、メインのパーティション名は、フォーマットの時に指定します(ここではMacintosh HDとしました)

/dev/disk0 (internal, physical):

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:      GUID_partition_scheme                        *120.0 GB   disk0

   1:                        EFI EFI                     209.7 MB   disk0s1

   2:                  Apple_HFS Macintosh HD            119.2 GB   disk0s2

   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

  • /dev/disk0s2がメインのパーティションです。macOSインストーラは、macOSをこの/dev/disk0s2にインストールします。
  • /dev/disk0s3リカバリ用のパーティションです。macOSインストーラは、ここにリカバリ用のデータをインストールしてくれます。
  • /dev/disk0s1がESPです。macOSはここを使用しません。ESPは実機にももちろんありますが、やはり空のままです。Cloverをインストールする時に、カスタマイズ指定すると、ESPの中に必要なファイルを書き込んでくれます。

ESPは通常はマウントされていませんが、ターミナルから以下のようにすると /Volume/EFI 以下にマウントしてくれます。

diskutil mount /dev/disk0s1

ESPの中身

先のmacOSのインストール手順の箇条書きに示したように、ボリュームをフォーマットした後に、macOSをインストールして、次にCloverをインストールします。Cloverをインストールした後の、ESPの一例を見てみましょう。

CLOVERというディレクトリができていて、この中に、設定ファイルconfig.plist, システム拡張ファイルkextを入れるkexts, EFIのドライバを入れるdrivers64UEFIなどが出来上がっています。これらはCloverのインストーラが作ってくれますが、手作業で作っても良いです。すでに動いているHackintoshの環境を移行する場合などは、このディレクトリ構造そのままに新しいドライブのESPにコピーすれば、引き継がれて稼働します。Cloverのインストーラは、最小構成のconfig.plistと、必要なdrivers64UEFIの中身をインストールしてくれます。

kextsは、必要に応じて手作業でESPに入れておきます。kextsフォルダのOtherフォルダには全てのバージョン用の、数値のフォルダにはそのバージョン番号のmacOS用のkextを入れられます。 macOSでは、kextを/System/Library/Extensions/ (/S/L/Eと略されます) もしくは、/Library/Extensions/ (/L/Eと略されます) に置きます。Hackintoshで使うkextも/SLEや/L/Eに置くこともできますが、それではバニラで無くなってしまうので、ESPに入れるのが良いです。/SLEや/L/Eに置く場合は、パーミッションを正しく設定したり、キャッシュを作り直したり、SIPを無効にしたりなどの作業が必要です。ESPなら、Cloverがkextを有効にしてくれるので手間いらずでもあります。

f:id:siroanko:20170912224604p:plain