I want to use "startosinstall" so that I can install macOS Catalina onto an external hard drive in order to preload MacOS onto multiple SSD's quickly.

I've researched into this and have found websites such as Erase All Contents And Settings - erase and reinstall macOS in situ which suggest using:

/Applications/Install\ macOS\ Catalina.app/Contents/Resources/startosinstall \

--applicationpath /Applications/Install\ macOS\ Catalina.app \

  --agreetolicense --nointeraction --volume /Volumes/External\ Macintosh\ HD

I've tried running the above but have had no success and always find that I get this returned:

Usage: startosinstall

--applicationpath, a path to copy of the OS installer application to start the install with.
--license, prints the user license agreement only.
--agreetolicense, agree to license 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.
--converttoapfs, specify either YES or NO on if you wish to convert to APFS.
--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, 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.
--usage, prints this message.

Example: startosinstall --converttoapfs YES

but can't seem to actually get anything to run.

If anyone could provide me with some working code or show me how to solve this problem, I would be eternally grateful.

Thanks for your help

2 Answers 2


The Apple tool targets the current booted OS as far as I've been able to accomplish. Using asr is still valid, but can take some time to get the arguments correct. I think the tool you want for scripting installers is Mac Deploy Stick. You can use it without the hardware, but the hardware is quite amazing and a real time saver based on how many operations you need to handle.

This Sabrent gear also has served us well with push button cloning. There are many like it but this brand works for me. You can go bigger as well, based on how much time you save.

You might experiment with running the installer once and then when the system boots to the external drive, instead of running the assistant, shut down the system and try cloning the drive.

  • That looks great, I've had a go at downloading MDS but can't easily see how it's possible to load a full version of MacOS onto the external drive (a bootable installer looks pretty easy). Could you give me some advice? Feb 16, 2021 at 22:29
  • See how far you get and link your follow on question here @MajorFighter the tour is your friend as well for how to show research if needed in your questions. I’ve added a first next step to my answer with an edit...
    – bmike
    Feb 16, 2021 at 23:02
  • Thanks @bmike. MDS looks great but I think it can only be deployed by putting the Mac in Recovery mode link whereas I would want to install MacOS to an external SSD without having to reboot. Feb 16, 2021 at 23:22
  • The feature list of MDS is quite long and very few require the automaton (but all of them require reading and some experience and trial + error even for seasoned admin staff) - Create Workflows - Install Packages - Install macOS - Label Workflows - Automate Restores - Create Bootable macOS Volumes - Configure Automaton - Save to Disk Image - Save to External Volume - Add Packages to Workflows - Add Workflow Descriptions
    – bmike
    Feb 16, 2021 at 23:29
  • It does seem to have a lot! But it can't install MacOS on an active Mac! Feb 16, 2021 at 23:35

Update for those that are interested in knowing how this might be possible.

I discovered that the --volume argument was what was causing the code to not run and in order to enable --volume it was required that SIP was first disabled on my computer. This can be done by booting into recovery mode and entering csrutil disable into Terminal.

Once the Mac has restarted into it's normal operating system then SIP will be disabled and the --volume command should work.

Note I am still having trouble with getting the installer to work on an external drive and am finding that Terminal gets stuck indefinitely on Preparing to run macOS Installer…. I've posted another question on this issue here so hopefully someone will be able to resolve this!

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .