古いMacに、OpenCore Legacy Patcher (OCLP) を使って最新のmacOS Sequoiaをインストールします。OpenCoreの仕組みを使えば、動作対象外の古いMacに、最新macOSをインストールできます。格安中古Macで最新macOSが動けば、HomeKit専用機やサーバとして活用できるでしょう。
古いMacにmacOS Sonomaをインストールする前回の記事は、以下をご覧ください。
OCLPの入手
サポートから外れた古いMacに、最新macOSをインストール可能にするオープンソースプロジェクトが、OpenCore Legacy Patcher (OCLP) です。これを使用すると、以下のMacにmacOS Sequoiaをインストールできます。
OCLPの解説サイトはこちらです。操作は容易ですし、スクリーンキャプチャ付きで詳しく説明されているので、わかりやすいです。
プログラムの配布ページは以下です。執筆時点では、2.0.1が公開されています。2.0.0に対してバグフィックスがされたものらしいです。Sonoma移行直後には多少不安定なことがありましたが、アップデートでどんどん改善されました。Sequoiaでも同様と思われますので、新しいバージョンが発表されていたら、そちらに置き換えましょう。
ここから、OpenCore-Patcher.pkgというファイルをダウンロードしてインストールすると、
以下のアプリケーションがアプリケーションフォルダに出来上がります。
OCLPの仕組み
UEFIを備えたIntelコンピュータにパッチを当てて、macOSを起動させるブートローダーとして最も人気のあるプログラムがOpenCoreです。OCLPは、Legacyな(古い世代の)Macに合わせたOpenCore設定を、自動的に行うためのソフトウェアです。Macの機種に合わせて、必要なパッチを当てて、OpenCore設定ファイルを作成する機能を、わかりやすいGUIで提供してます。
GUIを手順通り操作すれば、OCLPは使えます。でも、OCLPの仕組みを知っていれば、何をやっているのかわかり、柔軟に対応できます。そこで以下では、OCLPとOpenCoreがどういう仕組みで何をしてくれるのかを説明します。手順さえ分かれば良いという方は、次節まで読み飛ばしてください。
OpenCoreとは
OCLPの土台になっているのが、OpenCoreというプログラムです。
OpenCoreは、一般的なIBM PC-AT互換機(Windowsが動作するメーカー製PCや自作PC)でIntel版macOSを起動させるためのブートローダープログラムです。元々は、いわゆるHackintosh(ハッキントッシュ)を可能にするために開発されました。
ただ、Windows PCもIntel Macもどちらも同じブートローダーが使えるファームウェアインタフェース (UEFI) を採用してます。Microsoft, Appleを含む多数の会社がファームウェアインターフェースの標準化を行ったからです。(ちなみにUEFIが登場する前は、BIOSというインタフェースが業界標準でした)なのでOpenCoreはWindows PCだけでなく、実はIntel Macでも動作します。ということでOpenCoreをIntel Macにインストールすれば、OpenCoreのブートローダー機能を使って、macOSを起動させることもできます。
ただし、元からmacOSが起動するMacに、OpenCoreを使ってmacOSを起動させるのはナンセンスです。でもこの仕組みを使えば、古いMacで、本来な動作しない最新macOSを起動させることができます。OpenCoreは、Macの個体情報を改ざんしたり、カーネル拡張ファイル(kext)を追加したり、macOSにパッチ当てたりしてくれるからです。
古いMacにOpenCoreをインストールして、最新macOSを起動するする手法は、かなり昔から行われてきました。でも、必要なkextファイルを揃えて、パッチ当てする作業は面倒でした。OCLPはその手順を簡単に、自動的に実施するツールです。開発コミュニティの人たちが見つけ出した膨大なパッチのノウハウを、誰でもボタンひとつで利用できます。
EFI System Partition (ESP)
OpenCoreは、通常、HDDやSSDのEFI System Partition (ESP) という特別なパーティションにインストールされます。UEFIを使うWindows PCやIntel Macは、電源投入直後に、ESPに置かれたプログラムを実行するからです。
ターミナルで、diskutil listコマンドを使うとESPを確認できます。例えば、とある古いMacBook Proに搭載されたSSDの内容は以下のようでした。
$ diskutil list /dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *500.1 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_APFS Container disk1 499.9 GB disk0s2
このMacBookには、500.1GBのHDDが付いていて、そのうち209.7MBがUEFIのESPで、残りの499.9GBがmacOS標準ファイルシステムであるAPFSコンテナに割り当てられています。
ESPはmacOSのファイルシステムとは別に用意された小さな起動用パーティションです。通常のWindows PCや自作PCでは、ESPをシンプルなFAT32でフォーマットして、この中に起動用のプログラム(EFIプログラム)を入れておきます。コンピュータが起動すると、ファームウェアがESPからEFIプログラムを読み込み、これがメインのOS、例えばWindowsやLinuxを起動します。
通常のMacには、上で確認したようにESPは用意されていますが、フォーマットされておらず、使われていません。ただハードウェアはEFIに対応しているので、指示されればESPから起動します。そこで、Intel MacのESPをFAT32でフォーマットして、ここにOpenCoreのファイル一式を書き込んでおけば、これが実行されます。OCLPは、ESPをフォーマットして、必要なOpenCoreのファイルをESPに書き込んでくれます。
非互換macOSの起動
ESPから起動したOpenCoreは、macOSを読み込むためのプログラム(ブートローダープログラム)をメモリ上に展開して、macOSを起動します。この際に、いろいろな手段を駆使して、互換性の無いOSを起動します。例えば、非互換ハードウェアチェックを回避してくれます。
macOSに限らず、OSが起動する際には、動作可能なコンピュータなのかチェックしています。そして対応していないハードウェアでは通常、OSが起動しないようプログラムされてます。これを回避する機能は、OpenCoreが得意とする部分です。Hackintoshする人たちは、Intel製ではないAMD製のCPUでも、macOSを起動させてます。具体的には、CPU IDを偽装してサポート対象のCPUに見せかけたり、OSのサポート対象CPUリストにパッチを当てて当該CPU IDを追加したりします。
削除ドライバを復活
OpenCoreを適切に設定してESPに書き込んでおけば、macOSは起動するようになります。しかしまだ問題があります。それはハードウェアを動かすソフトウェア(ドライバ)が足りないことです。これらのソフトウェアは、macOSではカーネル拡張 (kext) ファイルとして提供されます。
古いMacがmacOSの動作対象外となることで、古いMacでのみ使用されるグラフィックスチップやネットワークチップなどをサポートする必要がなくなります。例えば、前述のMacBook Pro 2012では、Intel CPUに統合されたIntel HD Graphics 4000というグラフィックスハードウェアを使用しています。また、Wi-FiチップにBroadcom社のBCM43xxシリーズを使用してます。これらを動かすkextファイルは、最新macOSからは削除されてしまっています。そこで、macOSはなんとか起動しても、グラフィックス描画速度が遅いとか、Wi-Fiに接続できないなどの不具合が発生します。
最新macOSから削除されたkextファイルは、古いmacOSではちゃんと動作していたので、これを新しいmacOSにコピーしてくれば大体は解決します。実際にはOS改変を保護する機構を解除したり、多数のファイルを正しい場所にコピーするなどの複雑な手順が必要です。OpenCoreでは、ESPに追加で必要なkextファイルを保存しておき、macOSの起動時に追加する機能があります。また、必要に応じて、macOSのkextファイルにパッチ当てする機能もあります。
MacBook Pro 2012
OCLPの使い方については、前述の解説ページに詳しく書かれています。ここでは2012年発売MacBook Pro (MBP2012) に、OCLPを使ってSequoiaをインストールします。古いMacなので、中古店やフリマサイトで2万円程度で売られてます。メモリが少なかったり、遅い小容量HDD搭載だったりするかもしれません。でも問題ありません。ねじ止めされた裏蓋を開ければ、メモリは16GBまで増量可能で、HDDは2.5インチSSDに簡単に交換できます。メモリ増量してSSDに交換すれば、今でも十分使えるMacです。
公式にインストール可能な最終macOSは High Sierra (2017) です。MBP2012は、ハード的には十分な性能ですが、最新のソフトウェアが使えません。スマートホーム用途では、現行のHomeKitが動かないことが致命的です。
そこでOCLPを使い、最新macOSを導入します。
OCLPを使ってSequoiaを導入する手順は、何通りかあります。例えば、すでにOCLPを使ってSonomaなどを動かしているならば、Sonomaのアップデート機能を使っても良いです。以下の説明では、どんな状況でもSequoiaを確実にインストールできる方法として、Sequoiaインストール用USBメモリを作る方法を紹介します。このために、30GB以上の容量のUSBメモリを用意しておきます。これがインストール用USBメモリになります。
Sequoiaインストーラを入手する
まずはSequoiaインストーラを入手します。これも色々方法はありますが、OCLPの機能が使えます。前述のサイトからダウンロードしたOCLPを起動すると、メインメニューのウィンドウが開きます。この左下にある、Create macOS Installerを選択すると、
macOSインストーラの入手方法を聞かれます。なんらかの方法で、すでにmacOSインストーラを入手している場合は、Use existing macOS Installerボタンを使います。インストーラを入手していない場合は、Download macOS Installerボタンを押します。
Download macOS Installerボタンを選択すると、Appleのサイトに接続してダウンロードしてくれます。歴代macOSを選択できますし、最新版のSequoiaもリストにあります。このiMacでは本来インストールできないmacOSですが、ダウンロード可能です。
Downloadボタンを押すと、ダウンロード開始します。この日はSequoiaの公開日だったので、かなり混んでました。
ダウンロード終了すると、アプリケーションフォルダに、「macOS Sequoiaインストール」というアプリが出来上がっていました。
導入用USBメモリを作る
一方でOCLPは、インストール用USBメモリ作成するかどうかを聞いてます。
Yesを選択すると、アプリケーションフォルダにあるインストーラを探して、これからUSBメモリを作るかどうか聞いてきます。
インストーラを選択すると、USBメモリを選択する画面になります。
USBメモリを選択すると、USBインストーラの作成が開始します。
USBインストーラメモリを作る手法はおそらく、Appleが公開している「macOS の起動可能なインストーラを作成する」ページで紹介されている方法です。これをGUIから起動しているのだと思います。
USBメモリの作成が終了すると、OpenCoreの設定とインストールに進みます。
これはOCLPのメインメニューからも選択できます。次にそれを説明します。
OpenCoreをESPに書き込む
OpenCoreをESPにインストールすることで、最新macOSを起動できるようになります。この作業は、OCLPメインメニューの左上にある、Build and Install OpenCoreで行えます。前節の「OCLPの仕組み」を読み飛ばして、OpenCoreって何だろうと思われた方は、前節をお読みください。
Build and Install OpenCoreボタンを押すと、現在のMacに合わせてOpenCoreの設定ファイルやkextファイルが用意されます。
次にInstall to Diskボタンを押すと、インストール先のドライブを指定できます。以下の例では、インストール先のドライブ候補が2個現れています。一つはMacBook Pro内蔵のSSDで、もう一つは前のステップで作成したUSBメモリです。接続したままにしてあったので、見えています。
ESPは、内蔵SSDにも、USBメモリにも存在しています。OpenCoreもどちらにもインストール可能です。MacBook Pro本体を起動する場合は、内蔵HDDのESPにインストールされていた方が便利ですし、USBにもインストールしてあれば、内蔵SSDに不具合があった場合にUSBから起動できます。ここでは、内蔵SSDにのみインストールしましたが、USBメモリにもインストールしておくと安心かもしれません。
下は、こうして本体HDDのESPにインストールされたOpenCoreの内容です。ESPは通常はマウントされないので見えませんが、diskutil mountdiskコマンドで/Volumes以下にマウントしました。Kextsフォルダにある拡張子kextのファイルは、カーネル拡張ファイルです。19個のkextが追加されています。config.plistがOpenCoreの設定ファイルです。
OCLPは、対象のMacに合わせて、これらを自動選択し、設定ファイルを自動生成してくれます。これを手作業するのは大変ですから、自動で用意してくれるOCLPはありがたいです。
OpenCoreの起動確認
次にMacを起動した時に、OpenCoreはブートローダとして機能します。なので、インストール後に再起動するかどうか聞かれます。
OpenCoreを使って起動する様子がわかりやすいように、起動時にすかさずオプションキーを押し続けてみます。すると、するとMacのファームウェア (UEFI) の機能で、起動可能なディスクの選択肢が現れます。
中央のHDDアイコンは、内蔵SSDを表しています。現時点では古いHigh Sierraが入っていて、これを選択すると今まで通りにHigh Sierraが起動します。
右端のUSBドライブのアイコンは、ここで作成したSequoiaのインストールUSBメモリです。Sequoiaが起動できるMacでしたら、これを選択するとインストーラが起動します。しかし、このMacBook Proは古いので起動しません。
デフォルトで選択されている左端のOpenCoreアイコンが、OCLPによって、内蔵SSDのESPにインストールされたOpenCoreブートローダーです。これを選択するとOpenCoreが起動します。そして、以下のように、起動できるOSの選択画面が表示されます。
上のアイコンはMacBook Proのファームウェア (UEFI) が表示していたのですが、下のアイコンはOpenCoreが表示しています。
デフォルトで選択されている左側のアイコンは、内蔵SSDに入っている古いHigh Sierraです。これを選択すると、High Sierraが起動します。一つ前の選択肢でHigh Sierraアイコンを選ぶことと同じ結果になりますが、OpenCoreが色々細工をした後での起動になります。とはいえ、違いはありませんので、現時点でこちらを選ぶ意味は無いです。
右側のInstall macOS Sequoiaアイコンを選ぶと、USBインストーラが起動します。こちらもOpenCoreが細工した後での起動なので、今回は正しくインストーラが起動します。以下のように、通常のインストーラメニューが表示されるはずです。
Sequoia をクリーンインストールする
これでSequoiaインストーラが起動したので、MBP2012にSequoiaをインストールします。ここからは、ごく普通のmacOSインストール手順なので、詳しい説明は割愛します。
今回は、すでに入っているHigh Sierraをまっさらに消して、クリーンインストールします。そこで、まずは「ディスクユーティリティ」を選択して、内蔵SSDを消去しました。
次に「macOS Sequoia インストール」を選択して、内蔵SSDにインストールします。インストール中、 2〜3回再起動して、インストール終了しました。
インストール終了すると、OpenCoreのブート画面は以下のようになってます。今まで内蔵SSDのアイコンがHigh Sierraだったところが、Sequoiaのアイコンになっていて、インストールされたことがわかります。
これで無事Sequoiaが動作しました。
PostInstall Rootパッチを当てる
macOSが無事に起動した後、再びOCLPを起動し、メニュー右上のPost-installを選択します。Sequoia ではサポートされていないMacBook ProのWi-Fiとグラフィックス加速が効くようになります。
かなりの量のパッチ当て作業をしてくれます。
パッチ当てが終わったら、再起動します。
Sequoiaの動作確認
問題なく動作してます。「このMacについて」は以下です。
多少動作が緩慢な気もしますが、新しいmacOSを導入した直後は、検索用データベース作成などのプロセスが背景で動作するので、そのせいかもしれません。Sonomaの時は全くストレスなく使用できたので、Sequoiaも同じくらいには動作すると思われます。OCLPも順次アップデートされるので、Sonomaの時と同様に、今後の改善に期待できると思います。
Apple Accountに接続すれば、HomeKitも動作しました。安価な中古MacでHomeKitを使えるのはありがたいです。
とはいえ、完璧にSequoia対応できているわけではありません。例えば、Sequoiaの目玉機能として話題のiPhoneミラーリングは動作しません。
この機能の実現に、Apple T2セキュリティチップが使われているらしいです。2012年のMacBook Proには搭載されていないので、動作しないらしいです。
まとめ
古いMacBook Pro 2012にOpenCore Legacy Patcher (OCLP) を使って最新のmacOS Sequoiaをインストールしました。OCLPは、GUIボタンをクリックするだけで、簡単にパッチが当てられます。HomeKitが動作するので、サーバー用途や予備のメンテナンス用マシンとして活用していきたいと思います。
コメント