How do I download macOS High Sierra for offline install?
Yes, I found
macOS High Sierra media installer
but this don't fit my use-case. I need to update a number of Macs to High Sierra to address Spectre/Meltdown ASAP, and the questions linked above had to do with the High Sierra beta.
So: how do I download macOS High Sierra for offline installs?
Answering my own question:
From the App Store, grab the High Sierra installer. It will launch "Install macOS High Sierra" after the download completes. Click "Continue", accept the licensing agreement, select the install drive, then the installer will prompt for an admin password. After that, it will begin downloading to "/macOS Install Data" on the local machine.
The main data file is
/macOS Install Data/InstallESDDmg.pkg
When the download is complete, the installer will prompt for a system restart. Before doing that, inspect the download directory:
sudo find /macOS\ Install\ Data -type f -exec ls -l {} \;
-rw-r--r-- 1 user staff 328 Dec 4 19:03 '/macOS Install Data/AppleDiagnostics.chunklist'
-rw-r--r-- 1 user staff 2613173 Dec 4 19:03 '/macOS Install Data/AppleDiagnostics.dmg'
-rw-r--r-- 1 user staff 1948 Dec 4 19:03 '/macOS Install Data/BaseSystem.chunklist'
-rw-r--r-- 1 user staff 478740408 Dec 4 19:04 '/macOS Install Data/BaseSystem.dmg'
-rw-r--r-- 1 user staff 2124 Jan 8 08:39 '/macOS Install Data/index.sproduct'
-rw-r--r-- 1 user staff 4706541399 Dec 4 19:09 '/macOS Install Data/InstallESDDmg.pkg'
-rw-r--r-- 2 user wheel 1584 Dec 4 19:09 '/macOS Install Data/InstallInfo.plist'
-rw-r--r-- 1 root wheel 893 Jan 8 07:38 '/macOS Install Data/Locked Files/.disk_label'
-rw-r--r-- 1 root wheel 15 Jan 8 07:38 '/macOS Install Data/Locked Files/.disk_label.contentDetails'
-rw-r--r-- 1 root wheel 3557 Jan 8 07:38 '/macOS Install Data/Locked Files/.disk_label_2x'
-rwxr-xr-x 1 root wheel 23520 Dec 1 12:37 '/macOS Install Data/Locked Files/cleanup_installer'
-rw-r--r-- 1 user staff 269647 May 17 2017 '/macOS Install Data/OSX_10_13_IncompatibleAppList.pkg'
Then, copy the download directory off to another machine for future use.
When I tried to create a bootable installer for High Sierra I came across the problem that the installer downloaded from the App Store proved to be a "stub" version. This issue was reported in several places, so for example in the current thread and also here macOS High Sierra media installer .
To be honest, I was tired of trying out one workaround after the other that bright people worked out in order to overcome this issue and that, for better or for worse, fixed my issue . So I decided to trust Greg Neagle's approach and to apply his script to solve the problem. That's how it worked for me:
- Fetch
installinstallmacos.py
script from
https://github.com/munki/macadmin-scripts/blob/master/installinstallmacos.py -
Run
sudo python /path_to/installinstallmacos.py --catalogurl 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 --raw
The running script now offers a list of installer products for selection:
# ProductID Version Build Post Date Title 1 041-91741 10.13.6 17G2208 2019-10-13 macOS High Sierra 2 061-96006 10.15.4 19E287 2020-04-08 macOS Catalina 3 041-91758 10.13.6 17G66 2019-10-19 macOS High Sierra 4 061-86291 10.15.3 19D2064 2020-03-23 macOS Catalina 5 061-26589 10.14.6 18G103 2019-10-14 macOS Mojave 6 061-96006::1 10.15.4 19E287 2020-04-08 macOS Catalina 7 041-88800 10.14.4 18E2034 2019-10-23 macOS Mojave 8 041-90855 10.13.5 17F66a 2019-10-23 Install macOS High Sierra Beta 9 061-26578 10.14.5 18F2059 2019-10-14 macOS Mojave
In our case we choose option 3 .
The script terminates successfully. Data created:
/path-to-working-dir/Install_macOS_10.13.6-17G66.sparseimage
and a directory/path-to-working-dir/content
We now open the sparseimage by DiskImageMounter (via Finder) and drag the installer .app file into /Applications which, in our case, is
Install macOS High Sierra.app
-
Now we can create the bootable installer on an appropriate volume:
sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/volume_to_contain_high_sierra_installer --applicationpath /Applications/"Install macOS High Sierra.app"
For test: Boot into the newly created installer residing on an external HD and upgrade a clone of the
Macintosh HD
with OS X 10.11.6 El Capitan to macOS High Sierra 10.13.6 where this clone resides on another external HD; both HDs connected to the machine via a USB 3 hub. The installation process ran without any problems and took somewhat less that an hour.
Hardware-Software-Environment
MacBook Pro Early 2015 running OS X 10.11.6 El Capitan. There is no encryption enabled.
Some comments on the installinstallmacos.py script
It is an open source tool of about 600 lines written in Python. This tool scans Apple´s regular Software Update catalogs and is able to create a wide range of macOS installers. From my point of view, the code is the opposite of being opaque; with some basic Python knowledge you can read through the code and get the ideas behind. A brilliant piece of software!
-
Processing steps; citation from reference #2 below:
1. Parse a specified Software Update feed. 2. Identify the listed products which appear to be macOS installers. 3. Display a menu of the available choices. Once you’ve selected from the available options, the script does the following: 4. Creates a disk image and names it with the appropriate information for the specified macOS installer. 5. Mounts the disk image. 6. Downloads all the relevant packages from the Software Update feed for the specified macOS installer. 7. Installs the packages onto the disk image. 8. Unmounts the disk image. 9. Stores the disk image in the current working directory (this is likely going to be the logged-in user’s home folder.)
-
installinstallmacos.py help text:
usage: installinstallmacos.py [-h] [--seedprogram SEEDPROGRAM] [--catalogurl CATALOGURL] [--workdir path_to_working_dir] [--compress] [--raw] [--ignore-cache] optional arguments: -h, --help show this help message and exit --seedprogram SEEDPROGRAM Which Seed Program catalog to use. Valid values are PublicSeed, CustomerSeed, DeveloperSeed. --catalogurl CATALOGURL Software Update catalog URL. This option overrides any seedprogram option. --workdir path_to_working_dir Path to working directory on a volume with over 10G of available space. Defaults to current working directory. --compress Output a read-only compressed disk image with the Install macOS app at the root. This is now the default. Use --raw to get a read-write sparse image with the app in the Applications directory. --raw Output a read-write sparse image with the app in the Applications directory. Requires less available disk space and is faster. --ignore-cache Ignore any previously cached files.
References
Greg Neagle about functionality and usage of his
installinstallmacos.py
script:
A script to download the components for a macOS installer from Apple's softwareupdate servers and then install those components as a working "Install macOS High Sierra.app" onto a disk image.
https://github.com/munki/macadmin-scripts/blob/master/docs/installinstallmacos.mdDocuments installinstallmacos.py a use-case creating macOS High Sierra installers.
https://derflounder.wordpress.com/2018/02/27/using-installinstallmacos-py-to-download-macos-high-sierra-installers/
As @spacebiker pointed out in his answer, the best way is to create a bootable USB Stick for offline install with the tool createinstallmedia
that comes with the installer. For this the full installer download is necessary (about 5.23 GB), while most of the time only a stub version (about 20 MB) is downloaded from MAS. (If you don't have High Sierra in the purchase history, follow the link in this page from Apple's KB)
Beside the manual ways to assemble the full installer from the temp. downloads during installation outlined in various other answers here, there is now a second officially supported source available if you happen to have a Mac running Catalina or above available which is also compatible to run the OS to download:
softwareupdate --fetch-full-installer --full-installer-version 10.13.6
With that the full installer is downloaded and placed in /Applications
so you can directly use createinstallmedia
from it:
sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/USB/ --applicationpath /Applications/Install\ macOS\ High\ Sierra.app