I want to install Mojave onto an external drive, using a Mac that has Catalina as its current OS. The Mac is old enough to run Mojave.
A specific form of this question has been asked before, to which the answer is "create a USB installer disk".
I'm wondering if it might be possible without this workaround. Firstly, it requires the purchase of a USB stick. Catalina now requires just slightly more than 8GB, so I need a 16 GB stick at least. Admittedly, these are cheap and plentiful.
But I already have loads of 8GB sticks and the alternative to buying another bit of hardware is to sacrifice a 500 GB USB drive, which I already have, to become an installer medium.
However, creating an installer disk involves the
createinstallmedia command line tool inside the MacOS installer app bundle. There are also several other tools, including:
startosinstall, which yields the following info:
Usage: startosinstall Arguments --license, prints the user license agreement only. --agreetolicense, agree to the license you printed with --license. --rebootdelay, how long to delay the reboot at the end of preparing. This delay is in seconds and has a maximum of 300 (5 minutes). --pidtosignal, Specify a PID to which to send SIGUSR1 upon completion of the prepare phase. To bypass "rebootdelay" send SIGUSR1 back to startosinstall. --installpackage, the path of a package (built with productbuild(1)) to install after the OS installation is complete; this option can be specified multiple times. --eraseinstall, (Requires APFS) Erase all volumes and install to a new one. Optionally specify the name of the new volume with --newvolumename. --newvolumename, the name of the volume to be created with --eraseinstall. --preservecontainer, preserves other volumes in your APFS container when using --eraseinstall. --usage, prints this message.
It seems that there is a
--volume flag to set the target drive, but it is only available when the OS has SIP disabled.
I tried disabling SIP and running
startosinstall --volume <my external>, but the process just sat there, and Console was filled with messages about a binary not being signed correctly.
I suspect further investigation of this aspect of the tool may be required. I'm still hopeful that there's a way of doing this via the command line.
So I thought I'd put this information up here, even if it's just to get a confirmatory "No; duplicate", because the benefits to the community of getting a method would be large.