Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save tedneward/5d4710983caf55906f834dc7c576a418 to your computer and use it in GitHub Desktop.
Save tedneward/5d4710983caf55906f834dc7c576a418 to your computer and use it in GitHub Desktop.
Create macOS Catalina Bootable ISO Image
#!/bin/sh
#
# File: macos-installer-to-iso.sh
#
# Create a bootable ISO image from a macOS installer to install VMware ESXi guests.
#
# https://gist.github.com/Kutkovsky/613e29f35d3ef420b23b59ecdf7a28e0
# Debug on: set -x
set -eux
# App Store downloads macOS isntaller to here:
# /Applications/Install\ macOS\ Catalina.app
buildDir=macos-build-iso
installBuild=install_build
target=Catalina
macOsInstallerName="Install macOS ${target}"
echo "Clean..."
if [ -d "/Volumes/${installBuild}" ]; then
hdiutil detach /Volumes/${installBuild}
fi
if [ -d "/Volumes/${macOsInstallerName}" ]; then
hdiutil detach "/Volumes/${macOsInstallerName}"
fi
if [ -d "${buildDir}" ]; then
rm -rf ${buildDir}
fi
mkdir -p ${buildDir}
hdiutil create -o "${buildDir}/${target}.cdr" -size 10000m -layout SPUD -fs HFS+J
sudo hdiutil attach "${buildDir}/${target}.cdr.dmg" -noverify -mountpoint /Volumes/${installBuild}
sudo "/Applications/${macOsInstallerName}.app/Contents/Resources/createinstallmedia" --volume /Volumes/${installBuild} --nointeraction
hdiutil detach "/Volumes/${macOsInstallerName}"
hdiutil convert "${buildDir}/${target}.cdr.dmg" -format UDTO -o "${buildDir}/${target}.iso"
mv ${buildDir}/${target}.iso.cdr ${buildDir}/${target}.iso
rm ${buildDir}/${target}.cdr.dmg
# Now there should be an ISO called Catalina.iso in the `out` folder
# Upload the resulted ISO to vSphere datastore (upload to an ESXi host)
# Create a new VM as Guest OS set to `Other:Apple macOS 10.14 64-bit`. Don't start a VM
# Then compatibility should set to `ESXi 6.7 update 2 and later` and Guest OS to `Windows 10 64-bit`
# Start the VM, make sure that CDROM with datastore ISO (Catalina.iso) is connected
# Disable the Network boot option in vSphere BIOS menu. Restart VM
# Installer should start. You should choose Disk Utility, and initialize the VMware Virtual SATA Hard Drive Media
# (since keyboard ain't work - using existing `Untitled` name)
# Wait util installer completes. VM will not boot. Shutdown VM, change Guest OS profile back to `Other:Apple macOS 10.14 64-bit`
# Once Catalina is installed, download the latest VMware tools and install it.
# It took two reboots for me to completion (will require to unblock security extension)
# Credits to Intel008 and Bogdam from https://communities.vmware.com/thread/611961
# Credits to mkuzmin https://github.com/jetbrains-infra/packer-builder-vsphere/blob/master/examples/macos/setup/iso-macos.sh
# Credits to pat-s https://gist.github.com/agentsim/00cc38c693e7d0e1b36a2080870d955b
@tedneward
Copy link
Author

Forked from original so as to have my own copy, just in case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment