I don't have any issues with single SSD Drives, just treats them as a standard drive. I have had situations in testing where selecting the option to have casper imaging erase the drive caused issues with deployment. However if I use disk utility to wipe the fusion drive and then deselect that option in Casper Imaging everything performs as expected.
We don't have many fusion drive systems around, and the only one I have available for testing is my primary work desktop so unfortunately I haven't tested this as much as I would like to have.
Do you have the packages set to "install to boot drive after imaging" in Casper Admin?
hi
The problem i have by erasing with disk utility is that we have about a lot of machines now with fusion and ssd... we can't go around and do them one by one...
the option is not checked... is that an option i should check in my packages ? (install to boot drive after imaging) ?
Yes, in my experience most packages won't install correctly if they don't get laid down with the first run script by selecting that option.
I also have had to put the quickadd.pkg in the imaging process as I've had issues with systems sporadically not getting enrolled just leaving casper imaging to do it.
putting this option helped a lot... thanks...
I haven't run into this problem yet, and we've had a few Fusion Drives come through here. Of course my computer was the first FD, so I got this figured out nice and early. Jared N. had originally written this for standard drives. I added the pieces for the Fusion Drives. We run this before authenticating to Casper Imaging to get all machines wiped and ready for imaging.
Change the "YourCompanyName" to initials or something useful, then run and authenticate as an admin.
On a side note, only the OS package gets laid down at imaging time, everything else is first boot.
Chris
#!/bin/bash
##########
## Nuke and Pave, v2
## v2 Adds Fusion Drive awareness. (by Chris T.)
## v1 erases disk0 (by Jared N.)
## Used to easily format a multiple partitioned drive into a single empty partition.
##########
function run_fusion_nuke {
orig_LVG_ID=$( diskutil cs info $target_drive | grep LVG | awk '{print $4;}' )
fusion_physical_drives=$( diskutil cs list | grep Index -C1 | grep Disk | awk '{print $3;}' | sed -e 's|s[[:digit:]]||g' )
echo "We found a logical drive at $target_drive with LVG ID of $orig_LVG_ID"
echo "Using physical drives ${fusion_physical_drives}"
echo ""
echo "Destroying original Logical Volume Group, $orig_LVG_ID"
echo ""
sudo diskutil cs delete $orig_LVG_ID
echo ""
echo "Creating new Fusion Drive Framework with drives ${fusion_physical_drives}"
echo ""
sudo diskutil cs create YourCompanyName ${fusion_physical_drives}
new_LVG_ID=$( diskutil cs list | grep "Logical Volume Group" | awk '{print $5;}' )
echo ""
echo "Creating New Fusion Drive with LVG $new_LVG_ID"
echo ""
sudo diskutil cs createVolume $new_LVG_ID "JHFS+" "Macintosh HD" 100%
echo ""
echo "Done"
echo ""
sudo -K
exit
}
function run_non_fusion_nuke {
echo "Erasing the internal hard drive!"
echo
echo "Formatting drive using GUID partition map with a single Mac OS Extended partition."
sudo diskutil partitionDisk /dev/disk0 1 GPTFormat jhfs+ Macintosh HD 100%
echo
echo "Formatting complete."
sudo -K
exit 0
}
#### Detect Fusion Drive
## List available disks
avail_disk=$( ls /dev/disk* | grep -v 's[0-9]' )
for lv_disk_check in $avail_disk; do
lv_disk_check_result=$( diskutil cs info $lv_disk_check 2>/dev/null)
if [[ $lv_disk_check_result == *"Core Storage Properties"* ]]; then
target_drive=$lv_disk_check
break ## We found what we were looking for, let's get out of this "for" statement.
fi
target_drive=false ## Only called if there is no fusion drive found.
done
clear
##getting admin privileges
echo "You will have to authenticate as an administrator."
echo
sudo echo
clear
echo "***** WARNING ******"
echo "All data on the drive will be WIPED and NON-RECOVERABLE."
printf "Are you *sure* you wish to proceed? (y/n)"
read CONFIRM
case $CONFIRM in
n|N|no|No|NO)
echo "Cancelling."
sudo -K
exit
;;
y|Y|yes|Yes|YES)
if [[ $target_drive != false ]]; then
run_fusion_nuke
else
run_non_fusion_nuke
fi
;;
esac