Create a bootable ISO of macOS Catalina 10.15 (Bonus: With bootable USB too!)

By | February 19, 2020

How to make a bootable ISO of macOS Catalina

I previously wrote up my version of creating a macOS Mojave and Sierra HERE and HERE.

I’m updating it for macOS Catalina 10.15

First, navigate to the macOS Download page in the App Store and choose “GET”. Depending on whethere there’s a local copy or not, you may have to choose “Download” if you are offered it, and wait to download the whole installation app.

When you are done, the Installer will open. Quit the installer (via menu or via command-Q). This will leave the “Install macOS Catalina” installer in your /Applications folder.

Then copy this code and save it as a shell script named “CatalinaUSB.sh”

#!/usr/bin/env bash
hdiutil attach /Applications/Install\ macOS\ Catalina\.app/Contents/SharedSupport/InstallESD.dmg -noverify -mountpoint /Volumes/Catalina
hdiutil create -o ./CatalinaBase.cdr -size 8.5g -layout SPUD -fs HFS+J
hdiutil attach ./CatalinaBase.cdr.dmg -noverify -mountpoint /Volumes/install_build
asr restore -source /Applications/Install\ macOS\ Catalina\.app/Contents/SharedSupport/BaseSystem.dmg -target /Volumes/install_build -noprompt -noverify -erase
rm -rf /Volumes/macOS\ Base\ System/System/Installation/Packages
mkdir -p /Volumes/macOS\ Base\ System/System/Installation/Packages
cp -R /Volumes/Catalina/Packages/* /Volumes/macOS\ Base\ System/System/Installation/Packages/
hdiutil detach /Volumes/macOS\ Base\ System/
hdiutil detach /Volumes/Catalina/
mv ./CatalinaBase.cdr.dmg ./BaseSystem.dmg
# Restore the 10.13 Installer's BaseSystem.dmg into file system and place custom BaseSystem.dmg into the root
hdiutil create -o ./Catalina.cdr -size 10g -layout SPUD -fs HFS+J
hdiutil attach ./Catalina.cdr.dmg -noverify -mountpoint /Volumes/install_build
asr restore -source /Applications/Install\ macOS\ Catalina\.app/Contents/SharedSupport/BaseSystem.dmg -target /Volumes/install_build -noprompt -noverify -erase
cp ./BaseSystem.dmg /Volumes/macOS\ Base\ System
hdiutil detach /Volumes/macOS\ Base\ System/
hdiutil convert ./Catalina.cdr.dmg -format UDTO -o ./Catalina.iso
mv ./Catalina.iso.cdr ./Catalina.iso
rm BaseSystem.dmg Catalina.cdr.dmg

After creating the shell script, you can make it executable (“chmod +x CatalinaUSB.sh”) or just run it like “sh CatalinaUSB.sh”. If you aren’t proficient in running scripts, you probably shouldn’t be messing with this in the first place!

You want to be sure to run this code in a directory that has enough space to hold a few copies of the ~10GB ISO simultaneously. Ideally it’s on fast media as well. And also not part of your cloud storage (iCloud Desktop, Dropbox, etc.). Often your home directory is just fine.

Bootable USB?

Want a bootable USB? Simply use dd to copy the ISO directly to your USB drive. I am not going to give you a real command to copy to do that… dd can be dangerous. But it’s as simple as something like this:

sudo dd if=Catalina.iso of=/dev/rdisk### bs=4m

Good luck!

2 thoughts on “Create a bootable ISO of macOS Catalina 10.15 (Bonus: With bootable USB too!)

  1. Joseph Messenger

    It doesn’t work for Catalina 10.15.4 and above.

    I found this other solution:
    #!/usr/bin/env bash
    #===========================================================================
    # Works only with the official image available in the Mac App Store.
    # Make sure you download the official installer before running this script.
    #===========================================================================

    hdiutil create -o /tmp/Catalina.cdr -size 12000m -layout SPUD -fs HFS+J
    hdiutil attach /tmp/Catalina.cdr.dmg -noverify -mountpoint /Volumes/install_build
    sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia –volume /Volumes/install_build –nointeraction
    hdiutil detach “/Volumes/Install macOS Catalina”
    hdiutil convert /tmp/Catalina.cdr.dmg -format UDTO -o /tmp/Catalina.iso
    mv /tmp/Catalina.iso.cdr ~/Desktop/Catalina.iso
    rm /tmp/Catalina.cdr.dmg

    posted in https://gist.github.com/julianxhokaxhiu/d8c4a986ddb1cfc87e19a50eb238217f

  2. Bill Plein Post author

    I’ll check it out this weekend and update my post accordingly. Thanks for the heads up.

    ====== later ========

    Well, mine still seems to work but there’s some errors (non-fatal) and some cleanup I should do, BUT the link you sent is more elegant. Thank you! I’ll try that one out. Not sure why they had to increase the size of it to that large but whatever it takes 🙂

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.