macOSインストール用のUSBメモリをWindowsだけを使って作成しました。まず、OpenCoreパッケージに付属しているmacrecovery.pyというPythonプログラムを使ってMacの復元イメージをダウンロードし、次にFAT32のUSBメモリに保存します。これでMacで起動するRecoveryボリュームを作ることができました。手順だけを手短に見たい人は、以下のStep: 1, Step: 2, Step: 3の節を見てください。
Table of Contents
macOS導入USB
macOSをインストールするためのインストール用USBメモリは、通常はmacOS上で作成します。macOSが動いていないとmacOSをインストールできないので、Macを持っていないと鶏と卵状態に陥ります。Windowsだけを使ってmacOSをインストールことも、不可能ではないけどとても面倒です。
・・・と、思っていたのですが、試してみたところ予想していたよりずっと簡単でした。OpenCoreのバニラなインストールガイドで知られているDortaniaさんの説明ページを参考にしました。
このページを見るとややこしそうに見えますが、基本的には、
- OpenCoreパッケージに入っているPythonプログラムを起動してmacOS復元イメージ(これを使うとmacOSをインストールできる)をダウンロードする
- それをFAT32でフォーマットしたUSBメモリに入れる
だけです。
macOS環境ならば、Appleが配布しているmacOSインストーラの中にある、createinstallmediaコマンドを使ってインストーラUSBを作る方法が、Apple公式の方法で簡単です。この方法で作るUSBメモリは、HFS+でフォーマットされていて、MacやOpenCoreの起動選択画面ではそのOSのアイコンで表示されます。MontereyのインストーラUSBなら、下の写真にある「Install macOS Monterey」のようにOpenCoreの起動ボリューム選択画面に現れます。
これと同じものをWindowsで作るには、Windowsとは無縁なHFS+フォーマットのボリュームをなんとか作り出さないといけないので、とても大変だと思ってました。Dortaniaさんのページで紹介されているのは、HFS+形式USBメモリではなく、上の写真の右端に見切れて映っている、「Recovery 12.x (dmg)」という歯車アイコンに相当する復元用イメージを作る方法でした。
Step1: 復元ファイルをダウンロード
Windowsから、OpenCoreダウンロードのサイトを開き、最新版パッケージ一式をダウンロードします。ダウンロードサイトはここです。
OpenCore bootloader. Contribute to acidanthera/OpenCorePkg development by creating an account on GitHub. Releases · acidanthera/OpenCorePkg - GitHub |
ここから、OpenCore-x.x.x-RELEASE.zipをダウンロードします。ダウンロードしたファイルは、Downloadsディレクトリの中に、OpenCore-x.x.x-RELEASE.zipというファイル名で保存されてます。次に、このzipファイルの中にあるPythonプログラムを実行します。
Pythonの実行のために、通常はWindowsにPythonをインストールします。手元のWindowsマシンでは、WSLの UbuntuにすでにPythonをインストール済みだったので、以下では、WindowsとWSL Ubuntuを行ったり来たりして作業しました。WindowsにPythonがインストール済み、もしくはWSLを使っていない場合は、Windows側でPythonを実行してください。
Pythonの実行をWSL環境で行うために、Ubuntuを開けて、OpenCoreのzipファイルを作業しやすい場所にコピーします。次に、zipを解凍し、その中のUtilities/macrecoveryというフォルダに移動します。そしてそこにあるmacrecovery.pyというPythonプログラムを起動します。以下がその作業です。
cp /mnt/c/Userx/xxxx/Downloads/OpenCore-x.x.x-RELEASE.zip . unzip OpenCore-x.x.x-RELEASE.zip cd Utilities/macrecovery python3 ./macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000000000 download
macrecovery.pyは、http://osrecovery.apple.comというAppleのサイトから、特定のロジックボード用のリカバリーファイルをダウンロードするプログラムのようです。-bオプションでロジックボードのIDを指定します。上の操作で指定した番号 (Mac-E43C1C25D4880AD6) は、MacBook Pro (13-inch, Early 2015)、機種ID MacBookPro12,1のものです。検索したところ、以下のページにBoard ID一覧がありました。
Updated list of Mac BoardIDs, Model Identifiers & Machine Models from all intel Macs 2006-2019. MBPro, MBAir, MacBook, Mac Pro, iMac Mac Mini List of Mac BoardID, DeviceID, Model Identifiers & Machine Models - Mr. Macintosh |
MacBookPro12,1の機種対応の最終OSがMontereyなので、この指定でMontereyをインストールするリカバリーイメージをダウンロードできます。MacBookPro12,1はVentura未対応なので、この先もMontereyがダウンロードできるはずです。
他のmacOS、例えばBig Surのリカバリーイメージをダウンロードしたい場合は、最終サポートOSがBig Surである機種のロジックボードIDを指定します。Dortaniaさんのガイドでは、Big SurではMac-42FD25EABCABB274を指定することになってます。これはiMac (Retina 5K, 27-inch, Late 2014) iMac15,1のIDで、最終サポートOSはBig Surです。
macrecovery.pyを実行すると、
- BaseSystem.chunklist
- BaseSystem.dmg
という2つのファイルが出来上がってます。この先、Windowsでの操作を行うので、Windowsからアクセスしやすいように、Downloadsディレクトリに戻しておきます。
cp BaseSystem.* /mnt/c/Users/xxxx/Downloads/.
Step2: USBメモリを初期化する
次に起動用USBメモリを初期化します。GUIDパーティションマップ (GPT)で用意したパーティションをFAT32でフォーマットします。一般的なフォーマットなので、特に難しいところはないように思われました。実際、macOSのディスクユーティリティで作ったMS-DOS (FAT) (GUITパーティションマップ)のUSBメモリもそのまま使えました。ただ、macOSからUSBメモリの名前を変更したところ、通常の起動ドライブとして見えてしまうようになり、リカバリーイメージとしては表示されなくなり、使えなくなりました。微妙なパーティション・フォーマットの違いで動作しなくなるようです。
Dortaniaさんの手順では、WindowsでUSBメモリをフォーマットするツールとして、
- Windows標準のDisk Management (日本語名「ディスクの管理」)
- Rufusというオープンソフトウェア
- Windows標準のdiskpart
を使う3つの方式が紹介されています。ここではWindows標準装備の1. と 3.の方法を試し、動作することを確認しました。
Disk Managementを使う
Disk Managementは日本語名で「ディスクの管理」というツールです。macOSのディスクユーティリティに相当するツールかと思います。これで、USBメモリを選択し、初期化します。すでにGPTのパーティションが用意されていたら、それを削除して、未割り当てにして、「新しいシンプルボリューム」を作ります。
このメニューを選択すると、「新しいシンプルボリュームウィザード」というプログラムが起動します。これを用いて、FAT32のボリュームを作成します。ここでボリュームラベルを指定することもできます。
これでFAT32のUSBメモリが完成するので、Step 3に進んで、ファイルをコピーします。
Disk Managementは操作が簡単ですが、パーティションスキームを作り直す方法がわかりませんでした。MBR (Master Boot Record) でパーティション作られたUSBメモリは、FAT32でフォーマットされていてもリカバリーには使えないのですが、これをGPTに変更する方法がメニューには見つかりませんでした(Windowsスキルが低くてすみません)。次に示すdiskpartを使う方が確実だと思います。
diskpartを使う
diskupartもWindows標準搭載の、20年以上昔からあるツールでず。CUIでサクサク操作できて良いです。これを用いると、パーティションの設定から完璧に作り直せるので、USBメモリを間違いなく初期化できます。Windowsメニューからdiskpartとタイプすると起動します。USBメモリはUSBポートに挿しておきます。
Microsoft DiskPart バージョン 10.0.22000.653 Copyright (C) Microsoft Corporation. コンピューター: XXXXXXXXXX DISKPART>
disk listコマンドでUSBメモリの番号を見つけて(ここでは2番)それを選択します。USBメモリは32GBなので、これに間違い無いです。
DISKPART> list disk ディスク 状態 サイズ 空き ダイナミック GPT ------------ ------------- ------- ------- --- --- ディスク 0 オンライン 465 GB 0 B * ディスク 1 オンライン 232 GB 1024 KB * ディスク 2 オンライン 29 GB 127 MB * DISKPART> select disk 2 ディスク 2 が選択されました。
次に、このUSBメモリを、
- cleanして(ディスク構成情報を削除)
- GPTに変換して(最小のパーティションができる)
- primaryパーティションを作って(確認して、選択して)
- fat32でフォーマットして
- Eドライブに割り当てて
- 出来上がったvolumeを確認
します。その様子を下に示します。
DISKPART> clean DiskPart はディスクを正常にクリーンな状態にしました。 DISKPART> convert gpt DiskPart は選択されたディスクを GPT フォーマットに正常に変換しました。 DISKPART> create partition primary DiskPart は指定したパーティションの作成に成功しました。 DISKPART> list partition Partition ### Type Size Offset ------------- ------------------ ------- ------- Partition 1 予約済み 15 MB 17 KB * Partition 2 プライマリ 29 GB 16 MB DISKPART> select partition 2 パーティション 2 が選択されました。 DISKPART> format fs=fat32 quick 100% 完了しました DiskPart は、ボリュームのフォーマットを完了しました。 DISKPART> assign letter=e DiskPart はドライブ文字またはマウント ポイントを正常に割り当てました。 DISKPART> list volume Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ---- ---------- ------- --------- -------- Volume 0 NTFS Partition 465 GB 正常 Volume 1 FAT32 Partition 100 MB 正常 システム Volume 2 C NTFS Partition 232 GB 正常 ブート Volume 3 NTFS Partition 635 MB 正常 非表示 * Volume 4 E FAT32 Partition 29 GB 正常
太字部分が入力したコマンドです。これでエクスプローラーからEドライブとして見えます。
Step3: USBメモリにコピーする
次に、ダウンロードファイルをUSBメモリにコピーします。ここから先はエクスプローラーから操作できます。USBメモリに、以下の2つのフォルダを作ります。
- com.apple.recovery.boot
- EFI
com.apple.recovery.bootには、Step 1で入手した、
- BaseSystem.chunklist
- BaseSystem.dmg
を入れます。エクスプローラーのコピー・ペーストで行いました。
またEFIには、現在macOSを動かしているコンピュータのEFIをそのままコピーしておきました。
今回試したコンピュータは、ASRock Z690 Steel Legend + 12900K + RX 6600XTの組み合わせです。EFIはこちらに置いてあります(使う場合はシリアル番号などを入れてください)。ディレクトリ構成は結局、以下のようになりました。
- com.apple.recovery.boot
- BaseSystem.chunklist
- BaseSystem.dmg
- EFI
- APPLE
- BOOT
- OC
これでmacOSがインストール可能なUSBメモリが完成しました。
USBメモリで起動
このUSBメモリを挿してコンピュータを起動します。大抵は、起動可能なUSBメモリが挿さっているとそこから起動するようですが、BIOSメニューから確認・設定するのが確実かもしれません。USBメモリのルートにあるEFIディレクトリに、EFIファイル一式が正しくコピーできていれば、OpenCoreの起動ボリューム選択画面が表示されます。
ただ、この中にRecoveryイメージはありません。実は、使用しているconfig.plistで、選択メニューに復元イメージが表示されないよう設定してあるためでした。そのように設定されている場合、スペースキーを押すと、全部の候補が現れます。その結果、macOSがインストールされたそれぞれのボリュームの横に、Recovery xxx (dmg)という歯車アイコンの選択肢が現れます。実際のMacにも現れる復元用の起動ボリュームで、これを選択してOSの再インストールなどが可能です。
そして並びの左端に、今回Windowsだけを使って作成したUSBメモリが現れました。今回使用しているOpenCanopyの設定アイコンでは、他のRecoveryアイコンと違ってオレンジ色です。外付けドライブにあることで、色がオレンジのようです。アイコンの名前がNO NAMEなのは、FAT32のドライブ名のデフォルトがNO NAMEだからです。
これを選択して起動すると、リカバリーのメニューが現れます。ここでmacOS Montereyのインストールを選択すると、
インストーラが起動しました。この先インストールを進めることで、Montereyを動かすことが可能でした。
まとめ
Windowsだけを用いて、macOSをインストールするUSBメモリを作り、動作を確認しました。以前調べた方法はもっと複雑でしたが、今回はあっけなくできてしまいました。macrecovery.pyプログラムを開発された皆さんのおかげだと思います。Mac本体を持っていない人でも簡単にmacOSをインストールできると思います。その場合でも、OSを使わせてもらうお礼にApple製品やサービスを買ってあげてください。