Mac Pro mid 2012 で OpenCore によるUSBブート環境を構築した
Mac Pro Mid 2012 に BigSur をインストールしようとしていたのですが、インストーラを作り直すたびにグラフィックカードを差し替えるのが面倒になったので、先にそっちをなんとかしようと考えた。
以前、Mojaveを導入した頃にはCloverというブート環境があったのですが、やはりグラフィックカードを標準グラフィックカードに置き換えなければならなかったと記憶していて、意味がないので断念したんだと思う。今ならグラフィックカードのパッチでも出回ってるんじゃないかと探してみたところ、パッチはなかったが、非EFIのグラフィックカードでも起動ディスクの選択画面が出せるというOpenCoreというブートローダを発見した。
よく調べてみると、このブートローダはUSBメモリにインストールして使用し、不要になったらUSBメモリを抜いてPRAMリセットすればもとに戻せるらしい。また設定をうまく使うと、CatalinaやBigSurにアップデートも通るらしい。
ということで、まずはOpenCoreによるブート環境を構築することにした。
これは私自身の忘備録です。これを参考にアップデート行い、不利益が生じた場合でも責任は取りかねますのでご承知おきください。
現在の環境
- Mac Pro Mid 2012
- プロセッサ:2 x 2.66 GHz 6-core Intel Xeon
- メモリ:48 GB 1333 MHz DDR3
- グラフィックス:Radeon RX 560 4 GB
- システムディスク:intel M.2 NVMe 660p 2TB (PCI-Express 4x アダプター使用)
- OS:macOS Mojave v10.14.6 (インストール用各パッチ適用済)
必要なもの
- OpenCore (2021/6/22現在、V0.7.0)
- USBメモリ(8GB程度あればOK)
- 度胸
手順
USBメモリをフォーマットしてEFI領域を作る
いきなりハマったのだが、MacBookAirのBigSurでUSBメモリをフォーマットしてパーティションを見てみると、EFI領域ができない。なぜ。
わからないので、Mac ProのMojaveの方でフォーマットしてみる。フォーマットは「Mac OS拡張 (ジャーナリング)」、方式は「GUIDパーティションマップ」を実行してターミナルから diskutil list を実行したところ、リストのUSBメモリにEFI領域が作成されていた。
OpenCore を準備する
次のファイルをダウンロードして、展開しておく。
- OpenCore-0.7.0.Release.zip
- config.zip
USBメモリのEFI領域をマウントする
- USBメモリを、OpenCoreをダウンロードした端末に挿す。
- EFI領域を確認する。ターミナルを起動して、diskutil list でUSBメモリ上のEFI領域のIDを調べる。この場合は下記のように、「disk2s1」だということがわかる。
- マウント先を作成する。下記コマンドで、マウント先のディレクトリを作成する。
$ sudo mkdir /Volume/EFI - USBメモリのEFI領域をマウントする。下記コマンドで、先に作成したマウント先にマウントする。
$ sudo mount -t msdos /dev/disk2s1 /Volumes/EFI - デスクトップにドライブアイコンが出現するのを確認する。出現したアイコンをダブルクリックして開く。
OpenCoreをコピーする
- Zip展開した /OpenCore/X64/EFI フォルダのEFIフォルダのみを、先にマウントしたEFIドライブにコピーする。
- config.plist (config.zipを解凍して得られるファイル) を、EFIドライブにコピーした下記フォルダにコピーする。
/Volumes/EFI/EFI/OC - 必要に応じて、マウントを解除する。
USBメモリから起動する
- USBメモリをブート対象とするマシン (今回はMac Pro)に挿し、ターミナルを開いて下記コマンドを打ち込んでリブートする。
$ sudo nvram "recovery-boot-mode=unused" && sudo reboot recovery - パスワードを求められるので、入力。リブートされる。
- しばらく待つと、リカバリーモードで起動される!!
初回起動時設定
- リカバリーモードでターミナルを起動する。
- $ diskutil list で、USBメモリのEFI領域のIDを調べる(仮に、disk2s1 とする。ここは各自の環境で変えること)。
- EFI領域をマウントする。
$ diskutil mount /dev/disk2s1 - マウントしたEFI領域を起動領域とする。
$bless --mount /Volumes/EFI --setBoot - ターミナルを閉じ、システムを終了する。
- 再度電源を投入する。
起動画面の確認
- リンゴマークとプログレスバーが表示されて (!!)、しばらく待つとドライブセレクト画面が表示される。
これで、非EFIグラフィックカードによるブートドライブ選択ができるようになる。
おまけ
- もとに戻すときは、PRAMリセットをすればよい。
- リカバリーモードに入るときは、ターミナルから下記コマンドを打ち込む。
$sudo nvram "recovery-boot-mode=unused" && sudo reboot recovery