labs

A DeployStudio workflow for late 2012 iMacs

We faced challenges when first attempting to deploy images to our late 2012 iMacs with Fusion drives.

You may see this error:

“Workflow Aborted

The destination volume is too small.”

Our solution was to modify our workflow to include an additional step that split the Fusion drive before continuing.

10.8.3 DeployStudio Challenges

Before starting, make sure your NetBoot set is updated to 10.8.3. You’ll save yourself a world of agony.

Splitting the Fusion Drive

We found the easiest way to make it work was to use this script to split the Fusion drive, which we have named “split_fusion.sh”:


#!/bin/sh
#
# Copyright (c) 2013 Pivotal Labs

# Permission is hereby granted, free of charge, to any
# person obtaining a copy of this software and associated
# documentation files (the "Software"), to deal in the
# Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the
# Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice
# shall be included in all copies or substantial portions of
# the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
# PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
# OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

echo "force unmount"
diskutil unmount force /dev/disk2

echo "split_fusion.sh - v0.02 ("`date`")"

diskutil cs delete `diskutil corestorage list | grep "Logical Volume Group" | awk '{print $5}'`

echo "split_fusion.sh - end"

exit 0

Some notes about this script:

  • The important line is the “diskutil cs delete” line. That is the command which will split the Fusion drive. “cs” is an abbreviation for CoreStorage.
  • The “diskutil unmount” was a hack to get around a bug where 1/3 of the iMacs would not split the Fusion drive because it was unable to unmount it.
  • This script will work on machines that do not have Fusion drives.
  • If you have a RAID’ed machine, you probably won’t want to use this script; we believe it will destroy (i.e. separate into distinct physical volumes) your RAID partition.
  • This script will work on a DeployStudio network server; however, were not able to make it work with a bootable DeployStudio server FireWire/Thunderbolt drive (i.e. no network).

Modifying you DeployStudio Workflow

  1. Copy the script into your DeployStudio’s scripts sub-directory. Make sure this script is executable.
  2. Open DeployStudio Admin.
  3. Click on Workflows
  4. Click on “+” next to the Workflow timeline to view available icons.
  5. Add “Generic” to the Workflow timeline by dragging and dropping “Generic” to the beginning of Workflow.
  6. Add description, “Split Fusion”.
  7. From the drop down at Command, select the script that you added in step 1, e.g. “split_fusion.sh”.
  8. Check “Automate” at the bottom of the Generic Workflow.
  9. Click “Save” to commit changes.

DS_blog

 

 

Acknowledgements: Brian Cunnie, Reed Kennedy, Colin Deeb, Joey Perna – Thanks Guys!