Skip to content

Instantly share code, notes, and snippets.

@cengage
Last active October 28, 2020 14:01
Show Gist options
  • Save cengage/4542016 to your computer and use it in GitHub Desktop.
Save cengage/4542016 to your computer and use it in GitHub Desktop.
First shot at describing the process of building a vanilla OS X box with veewee using only the OS X installer application.
Notes using minstallconfig.xml
- Create base OS X vmx w/ veewee:
* HD must be IDE, not SCSI
* Do not define a specific boot device, VM will boot from DMG attached to CD-ROM later in process
- Obtain "Install OS X Mountain Lion.app"/"Install Mac OS X Lion.app"
- Mount InstallESD.dmg w/ shadow file from "Install Mac OS X Lion.app/Contents/SharedSupport/InstallESD.dmg"
* hdiutil attach "[...]/Install Mac OS X Lion.app/Contents/SharedSupport/InstallESD.dmg" -owners on -shadow /tmp/InstallESD.shadow
- Mount /Volumes/Mac OS X Install ESD/BaseSystem.dmg w/ shadow file
* hdiutil attach "/Volumes/Mac OS X Install ESD/BaseSystem.dmg" -owners on -shadow /tmp/BaseSystem.shadow
- Add line to /Volumes/Mac OS X Base System/etc/rc.common to erase VMDK and create empty "Macintosh HD" volume
* echo "diskutil eraseVolume JHFS+ "Macintosh HD" disk0" >> "/Volumes/Mac OS X Base System/etc/rc.common"
- Testing has shown that the VMDK is always at /dev/disk0 but more logic to be sure would be prudent
- Create "/Volumes/Mac OS X Install ESD/Packages/Extras" folder
- Create "/Volumes/Mac OS X Install ESD/Packages/Extras/minstallconfig.xml" - this is a standard plist
* EXAMPLE: http://bit.ly/10xgOkU
- TODO: Configure minstallconfig.xml to use an OSInstall.collection plist instead to install additional custom packages (first boot, create user, etc.)
* The .collection file is a plist with one array containing strings representing absolute paths of packages to be installed
- TODO: When using a .collection file also copy referenced custom packages to /Volumes/Mac OS X Install ESD/Packages
- Detach BaseSystem.dmg
- Convert BaseSystem.dmg + shadow file to replacement BaseSystem.dmg:
* hdiutil convert -format UDZO -o /SOMETEMP/BaseSystem.dmg "/Volumes/Mac OS X Install ESD/BaseSystem.dmg" -shadow /tmp/BaseSystem.shadow
- Replace /Volumes/Mac OS X Install ESD/BaseSystem.dmg with modified /SOMETEMP/BaseSystem.dmg
- Detach InstallESD.dmg
- Convert InstallESD.dmg + shadow file to new InstallESD_mod.dmg
* hdiutil convert -format UDZO -o /SOMETEMP/InstallESD_mod.dmg "[...]/Install Mac OS X Lion.app/Contents/SharedSupport/InstallESD.dmg" -shadow /tmp/InstallESD.shadow
- Configure /SOMETEMP/InstallESD_mod.dmg as the attached CD-ROM image - do NOT set CD-ROM as boot device in VMX
- Boot VM
- OS X installer will automatically start
- After install completes the VM will reboot and start OS X from the VMDK; OS X and any custom packages will be installed
- $DOSTUFF based on any custom packages
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment