「あのかぼ」のスピンオフサイト「ゼロかぼ」ができました。 詳しくはこちら>

OCLP開発者が分析!macOS High Sierra 10.13の「復旧サーバに接続できませんでした。」を修復する方法

Mac

OCLP開発者が分析!macOS High Sierra 10.13の「復旧サーバに接続できませんでした。」を修復する方法

macOS High Sierra 10.13はAppleが2017年に公開したmacOSでAPFSのサポートなど、現在のmacOSを形成する上で重要なバージョンです。
ただ、2023年ごろからインターネット復旧でmacOS High Sierra 10.13をインストールする際、「復旧サーバに接続できませんでした。」や「The recovery server could not be contacted.」と表示されインターネットリカバリが完了しないといった報告が相次ぎました。

別のMacをお持ちであればmacOS の起動可能なインストールメディアを作成しmacOSをインストールすればよいものの、1台しかMacを持っていない場合にはどうしたらいいでしょうか?
この記事ではインターネット修復でmacOS High Sierra 10.13をインストールする際「復旧サーバに接続できませんでした。」というエラーを修正する方法を紹介します。

関連> 【最新ガイド】MISTを使ってmacOSの起動可能なUSBインストーラを簡単に作成する方法

なお、この記事はMr. Macintosh様の記事「[FIXED] High Sierra “The Recovery Server Could Not Be Contacted” Error. High Sierra Internet Recovery is Still Online, but Broken!」(英語)を参考に執筆しました。

macOS 10.13の「復旧サーバに接続できませんでした。」という問題を解決するには?

この問題は2010年代前半〜中盤のIntel Macで、復旧 (Recovery)やインターネット復旧 (Internet Recovery)からmacOS High Sierra 10.13をインストールする際に発生します。

macOS High Sierra 10.13で発生する「復旧サーバに接続できませんでした。」(The recovery server could not be contacted.)というエラーは証明書の有効期限や日付・時刻の問題ではありません。
macOS High Sierra 10.13のインストーラが参照する Appleのカタログ(swscan.apple.com)に HTTPS でアクセスできなくなったことが原因であるとMr. Macintosh 氏とOpenCore Legacy Patcher (OCLP)の共同創設者であるDhinak G 氏によって明らかになりました。

解決策は主に3つ。

Fix 1:より新しい Internet Recovery で起動して、macOS High Sierra を回避する

Option + Command + R(または状況により Shift + Option + Command + R)で、インターネット経由の復旧に入り直し、macOS High Sierra より新しいバージョンでmacOS をインストールします。

Macが Mojave 以降をサポートしているなら、この方法で macOS High Sierra 自体を避けることがAppleコミュニティでも解決策の1つとして挙げられています。

Fix 2:別Macで「フルインストーラ」をダウンロードして、USB起動インストーラを作る

macOS High Sierra をインターネット復旧に頼らず、USBの起動可能インストーラで入れる方法です。Apple公式も createinstallmedia を使う起動インストーラ作成手順を案内しています。

  • まず別のMacで「フルインストーラ(Install macOS … .app)」を入手
  • USBに createinstallmedia で書き込み
  • 旧MacをUSB起動してインストール

または、オープンソースのMISTを使用して、簡単にmacOSのUSBインストーラを作成する方法もあります。

Fix 3:NVRAM で “ソフトウェアアップデートカタログURL” を HTTPS→HTTP に差し替える

ただし、Fix 1はmacOS High Sierra 以上がサポートされていないMacの場合には利用できない解決策ですし、Fix 2についても他にMacを持っていない場合には利用できません。

そんな中、Mr. Macintosh 氏とOpenCore Legacy Patcher (OCLP)の共同創設者であるDhinak G 氏によって見つけ出された解決策がこちら。

  • インストーラが参照している カタログURL (https://swscan.apple.com/…sucatalog) をログで特定し、
  • そのURLを NVRAM変数 IASUCatalogURLhttp 版として設定して、
  • macOS High Sierraのインストールを試行する

という流れです。実際にこの解決策を見てみましょう!

ターミナルで解決!NVRAMを編集して新しいアドレスを強制!

主な解決策はカタログの参照先をNVRAMで上書きすることです。
ほとんどの作業はコピペで出来るので、先にザっと目を通して(めんどいなぁって思ってもめげずに)作業に臨まれるとよいでしょう。

HTTPを使うため、信頼できるネットワーク(自宅の回線など)で実行してください。(フリーWi-Fiは避けるのが吉。)

▼ macOS復旧が立ちあがったら、「macOSを再インストール (Reinstall macOS)」を選択し、「続ける」ボタンを押下します。

▼ macOS High Sierra のインストーラが立ちあがります。

▼ macOS High Sierra のインストーラが立ちあがったら、メニューバー(画面上部メニュー)のアプリメニューにある「ウインドウ」を選択します。

▼ そして、「インストーラログ」を押下します。

▼ 「インストーラログ」という新しいウィンドウが立ちあがります。

▼ エラーログ内に次のような行が出力されるので探します。

OSISSoftwareUpdateController: Failed to load catalog https://swscan.apple.com/content/catalogs/others/index-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog: Error Domain=MSUProductManagerErrorDomain Code=51

▼ もしどうしても「Failed to load catalog https://swscan.apple.com/…」という行が見つからない場合には、「検索」ボックスを選択し

▼ 検索ボックスに「https」と入力します。すると、該当のエラーが見つかるはずです。

▼ この行が見つかったら選択し、メニューバー(画面上部メニュー)のアプリメニューにある「編集」を選択します。

▼ そして、「コピー」を押下します。

ここまでできたら一度macOS High Sierra のインストーラを終了します。

▼ メニューバー(画面上部メニュー)のアプリメニューにある「macOS High Sierraインストール」を選択します。

▼ 続いて「macOSインストールを終了」を押下します。

今日の主役、ターミナルを開きます。

▼ メニューバー(画面上部メニュー)のアプリメニューにある「ユーティリティ」を選択します。

▼ 「ターミナル」を押下します。

▼ ターミナルが立ちあがります。

▼ ターミナルが立ちあがったら、メニューバー(画面上部メニュー)のアプリメニューにある「編集」を選択します。

▼ そして「ペースト」を押下します。

▼ 先ほどコピーしたエラーがターミナルに貼りつきます。

ターミナルの文字が小さい場合にはメニューバー(画面上部メニュー)のアプリメニューにある「表示」から「大きく」を押下するか、「command キー()」を押しながら「+」を押して拡大します。

▼ そして、貼り付けた文字列の中から、URLを選択します。

https://swscan.apple.com/content/catalogs/others/index-1013-10.12-10.11.10-0.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog

▼ 「command キー(⌘)」を押しながら「C」を押すか、メニューバー(画面上部メニュー)のアプリメニューにある「編集」から「コピー」を押下して、URLをコピーします。

▼ そして、「command キー(⌘)」を押しながら「V」を押すか、メニューバー(画面上部メニュー)のアプリメニューにある「編集」から「ペースト」を押下して、URLを貼り付けます。

▼ 先ほどコピーしたURLがターミナルに貼りつきました。これを編集していきます。

▼ URLの「https://」から「s」を削除し「http://」に修正します。(編集位置の移動にはキーボードの「」「」を使用します。)

▼ まずは「https://」から「s」を削除し「http://」に修正してみました。

▼ URLの先頭に「nvram IASUCATALOGURL="」を追加し、URLの終端に「"」を追加します。

最終的なコマンドは以下の通りです。

nvram IASUCATALOGURL="http://swscan.apple.com/content/catalogs/others/index-1013-10.12-10.11-10.10-0.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog"

▼ 今一度コマンドを確認しミスがない事を確認したらreturn キー(Enter キー)を押下します。

これで完了です。

▼ メニューバー(画面上部メニュー)のアプリメニューにある「ターミナル」を選択します。

▼ そして「ターミナルを終了」を押下します。

これで通常通りmacOS High Sierra のインストールが出来るはずです。

▼ 「macOSを再インストール (Reinstall macOS)」を選択し、「続ける」ボタンを押下します。

▼ 「macOS High Sierraのインストールを設定するには、“続ける”をクリックしてください。」と表示されたら「続ける」をクリックします。

▼ エラーなく進んでいきます。

もし、まだ「復旧サーバに接続できませんでした。」と表示される場合はMacがインターネットに接続していることを確認し、今までのステップにミスはないか確認した上で、ターミナルを使用してMacの時刻を現在の時間に修正します。

お疲れさまでした!

補足と追加のステップ!

HTTPにすると 中間者攻撃(MITM)の余地は増えます。
そのため、このガイドを実行する際は自宅のインターネット回線で行うことや、macOS High Sierra 10.13のインストールが完了したらNVRAMに保存したデータをリセットすることをおすすめします。

NVRAMをリセットするか、ターミナルから編集した部分のみを消去します。

  • NVRAM 全体をリセットする
  • ターミナルで変更した部分のみをリセットする
    • macOS のターミナルの場合: sudo nvram -d IASUCatalogURL
    • macOS 復旧のターミナルの場合: nvram -d IASUCatalogURL

まとめ

無事に解決できましたか?
Macの中古、ジャンク市場を見ると、「インターネットリカバリが利用できませんでした」という品が良く見つかります。
原因はなんであれ、このガイドで無事に古いMacが復活できることを願っております。

解決策を見つけたのはOpenCore Legacy Patcher (OCLP) 共同代表のDhinak G 氏。
これからのOCLPの開発にも期待したいです。

お疲れさまでした!
かぼしーでした!