As part of my preparing a fresh set of Mac VMs on ESXi 6.7u3, I booted each off of the disk images I’d previously created to verify they still worked. All went well until I started on macOS 10.13 High Sierra. It booted fine, the installer launched, but when I clicked the button to begin the install process, it waited… and waited… and then threw an error.

The recovery server could not be contacted.

This struck me as odd, since this same disk image had worked fine the last time I’d used it. Did disconnecting the virtual network port help? No, it only caused the message to appear immediately. But it did give indication that a work connection was somehow required for this version. For comparison, I checked what happens with the next two versions if the installer is started with no network. Mojave gave the same message, while Catalina said “An Internet connection is required to install macOS.”

macOS installer errors with no network connection

Several internet searches turned up an endless list of mostly Apple community forum posts, all of which were mentioning the same error, but in the context of attempting to reinstall using Recovery mode (hold ⌘R on boot), which boots from the recovery partition and downloads the installation files before reinstalling. For those cases the suggested solution is to use ⌘⌥R to use Internet Recovery mode, which instead downloads the latest macOS installer version that your Mac will run.

Why is this suddenly an issue? HWTech on Apple’s community forums suspects that Apple has intentionally offlined the recovery images for macOS 10.13 and earlier. I read this as a sneaky way of forcing users to upgrade their systems, or ditch them for something newer. Given Apple’s questionable past behaviour on this topic, I don’t find it at all surprising.

Update 2024-03: An investigation by Mr. Macintosh reveals that a change to Apple’s recovery servers has rendered them inaccessible over HTTPS to macOS 10.13. But as they’re still accessible over plain HTTP, setting a new IASUCatalogURL value in NVRAM is all that’s required to get Internet Recovery for High Sierra working again. (A separate post details how to fix Internet Recovery for Sierra, which is also broken but in a different way.)

But since my disk images were entirely self-contained, why was I being affected? In an issue thread for a similar script for VirtualBox, a comment from its author @geerlingguy puts the pieces together: since High Sierra, any installers created using the old method (i.e. not with createinstallmedia, but by reworking techniques that had worked for older versions) had been in the habit of re-downloading most of the installer. A quick check bore this out: 10.12 and earlier would install to a VM in 20 minutes or less, while my installer disk images for 10.14 and 10.15, though still working, would estimate well over an hour and saturate the network connection from the start.

To address this, I’ve updated Mac-Installer-Imageizer.sh to always use createinstallmedia for macOS 10.13 High Sierra, 10.14 Mojave, and 10.15 Catalina in addition to macOS 11 Big Sur and later. In my testing the images boot and create a working installation without any network connection required. I also made a fix to have it fetch the version number of the macOS that’s installed rather than that of the installer itself, which may differ slightly. And finally, I’ve verified that it creates a bootable macOS Sonoma disk image. (It promptly panics on my versions of VMware, but that’s a problem for another day.)