10.9 Mavericks, AutoDMG a match made in heaven

Date: Nov 11, 2013

If your like me then you have an entire organization of users who are itching to get their hands on the latest Mavericks operating system and have been told to wait, we are testing. Truth is that its already been tested. I tested it all through the various developer builds and the issues have for the most part been very minimal which is great for a .0 release. However the issue really has been how are we going to deploy it.

One option is to have everyone in my company sign up with an Apple account and download it from iTunes. This can be slow and tedious and its not very efficient. Enabling Caching server on OSX Server could make it more tolerable but still its not an overall enterprise solution that is easy to manage. So many things can go wrong if people are not willing to wait through the somewhat lengthy install process.

Two tools were released to help make life easier for OSX Admins. CreateOSXInstallPkg and AutoDMG the predecessor of InstaDMG. CreateOSXInstallPkg does what it says it takes the operating system installer application and turns it into a package that you can deploy with Apple Remote Desktop, Munki or Casper.

How to use CreateOSXInstallPkg

Created by the makers of Munki its a set of scripts that allows you as the administrator to make a package from your operating system installer.app file. This tool can be used to create installer packages for Lion and Mountain Lion & Mavericks.

It’s much easier to use createOSXinstallPkg to create installer packages. With the old tools, you had to run one or two scripts — one to download an “IncompatibleAppList” package, and one to customize the InstallESD.dmg if you wanted to install additional packages along with the OS X install. And then you had to manually assemble the package, copying several components into the right places within a template package. With createOSXinstallPkg, it’s as easy as:

cd /to/directory/of/createOSXinstallPkg
sudo ./createOSXinstallPkg --source /Applications/Install\ OS\ X\ Mavericks.app

to create a basic uncustomized package that installs Mavericks. But wait! There’s more! Where to find it?

createOSXinstallPkg Repo

Additional improvements:

The installer packages generated by the original InstallLion.pkg tools could not install on volumes encrypted with FileVault 2. Packages created with createOSXinstallPkg can be installed on encrypted volumes.

The pre-install checks done by InstallLion.pkg-generated packages were basic and not 100% accurate — they prevented the install of Lion on most machines that could not handle it, but not all. Packages generated by createOSXinstallPkg use Apple’s pre-install checks for Lion, Mountain Lion, and Mavericks so packages you generate will attempt to install only on those Macs officially supported by Apple.

Finally: both InstallLion.pkg and createOSXinstallPkg allow you to add additional packages to be installed after OS X is installed. This feature is intended to allow you to: install a local account or two (especially a local admin account), disable the Setup Assistant that normally runs at first boot, and install the software needed for whatever software deployment or configuration management system you might have. This might then serve as the basis for a “thin imaging” workflow, in which you install the OS and a few other tools, and then let your software deployment or configuration management system finish the setup and configuration of the machine.

Some folks tried to use the additional packages feature as a replacement for InstaDMG and/or System Image Utility in order to build a sort of modular deployment image containing Microsoft Office or iLife or even some Adobe applications. This often failed. There are two reasons this often doesn’t work as hoped:

For speed and accuracy, additional packages are added to the existing disk image, made writable through the use of disk image “shadow files”. This technique allows one to write to a normally read-only disk image. This is much faster and less error-prone than creating a large writable disk image, copying everything accurately from the InstallESD.dmg, adding the additional packages, then converting the new disk image to read-only. But the downside of this approach is that even when made writeable, the InstallESD disk image only has so much available space. For the Lion and Mountain Lion InstallESD images I’ve seen to date, this is around 350MB. createOSXinstallPkg now warns you and refuses to continue if you attempt to add more packages than will fit on the disk image.

The second issue is even more important and more limiting. The OS X Install environment used by the Lion and Mountain Lion installers is very stripped down — it does not have all the tools and scripting languages available in a “full” installation of OS X. This means that many package scripts will fail to execute properly in this environment. Add that to the fact that many package scripts fail to do the correct thing when installing to anything other than the boot volume (which is NOT what is happening during an OS X install), and you’ll find you should add only those packages that are absolutely needed.

Additionally, you should verify that all package scripts are compatible with the Lion/Mountain Lion install environment.

Source — Neil Gee, check out the full guide here.

How to use AutoDMG

If your not sold on the idea of deploying the operating system as a package through Munki, Casper or ARD and are simply looking for a way to deploy a system image complete with Recovery partition then look no further than AutoDMG. This cool little application creates a restorable DMG image to any system that works with Deploy Studio Server and Casper.

It’s currently a development product nearing a final release. It has a GUI front end which makes it super simple.

It’s hosted on GitHub and you can download the latest 1.1 dmg version here file here. Make sure you keep updated with the latest versions.

AutoDMG Repo

When building an image with AutoDMG the OSX version you are building on must match the image build – so building an OSX 10.9 image must be built on a OSX 10.9 Mac. AutoDMG can also build OSX 10.8.5 images.

Creating an AutoDMG 10.9 Mavericks Up To Date Image

Launch AutoDMG and you will be presented with the screen below.

auto-dmg-launch

AutoDMG will check for available updates – click the Download button to get them.

auto-dmg-updates

AutoDMG downloads any incremental updates as well.

auto-dmg-updates-download

When it’s done, Build the image.

auto-dmg-updates-build

Save to a destination and let the building begin.

autodmg-build-image

All too easy!, you can deploy with DeployStudio or direct to disk with ASR.

final-disk-image

With Apple Software Restore you can image a disk directly from the Terminal:

sudo asr restore -source osx_custom_131102-10.9-13A603.hfs.dmg -target /Volumes/test/ -erase -noverify

Change the source and target to suit. Check out the AutoDMG wiki here for more information about what kind of packages you can and can’t deploy. At this time it looks payload free packages are not supported.

https://github.com/MagerValp/AutoDMG/wiki

I hope this made your day, and good luck with the project of deploying OSX Mavericks.