August 2, 2014

How To Add a New CoreStorage Volume

CoreStorage Series

After I moved my iMac move volume to an SSD, I was left with an internal hard disk drive full of data. Rather than blowing away and start again, I decided to repartition it using CoreStorage. After resizing the existing volume, I decided to create a new drive to store Final Cut Pro data. The CoreStorage createVolume command made short work of this task!

Preliminary Steps

Before you can create a new CoreStorage volume, you must convert the disk to CoreStorage and free up some space by either resizing the existing volumes or deleting them. You should also consider rebooting the Mac to make sure the CoreStorage volume is up and running correctly.

Get the UUID of the Logical Volume Group

We must supply diskutil with two critical pieces of information: The Logical Volume Group UUID and the desired size of our new Logical Volume.

We need the UUID and available capacity of the Logical Volume Group

It is important to get the correct UUID: Each element in the CoreStorage stack (Logical Volume Group, Physical Volume, Logical Volume Family, and Logical Volume) has its own UUID and we must use the correct one for each command!

Create a New Logical Volume

I decided to create a new Logical Volume in the Logical Volume Group on my “Macintosh HD” using all the available space. I named this new LV “New LV” and stuck with the journaled HFS+ volume type (jhfs+). I copied and pasted the exact number of bytes from the “diskinfo corestorage list” command above.

diskutil coreStorage createVolume E8A912ED-6B22-471E-96A9-65851A48121F jhfs+ "New LV" 149026357248b

The CoreStorage createVolume command does it all!

In just a few minutes, diskutil created a new CoreStorage Logical Volume (including a new Logical Volume Family to contain it), formatted it as journaled HFS+, and mounted it for me to use!

Here’s my post-create “cs list”

  • http://www.facebook.com/geoffrey.m.arnold Geoff Arnold

    How do you “petition” a drive? ;-)

    Spelling correctors are evil.

  • http://blog.fosketts.net sfoskett

    Thanks for the correction! Fixed!

  • Karianne

    I have this situation:

    +– Logical Volume Group 6683F4BE-ECD4-42D5-A96F-7E10E0677EDE
    =========================================================
    Name: FusionDrive
    Size: 821504065536 B (821.5 GB)
    Free Space: 17754071040 B (17.8 GB)

    How can I add the 17.8GB to my existing Logical Volume of this Logical Volume Group?

  • Karianne

    Ok, I’ve got it.

    diskutil coreStorage resizeVolume lvUUID size

    did the trick. Thanks!

  • Adam Muriello

    Have you figured out a way to merge coreStorage partitions?

  • Kirk

    I’ve temporarily split a 1.1TB Fusion drive’s lowest level LV into two parts using:ndiskutil cs resizeStack 985g JHFS+ Temp 15gnand that resized the Fusion volume ok and appears to have created Temp as a free-standing partition. The new Temp isn’t listed in “diskutil cs list” but is shown in “diskutil list” output. Now I’d like to merge Temp space back into the Fusion LV – something akin to the “diskutil mergePartitions u2026″ command/verb. The mergePartition verb complains that the Fusion volume and Temp are on different whole disks. Re-invoking with the resizeStack verb and the original size complains that the disk isn’t big enough.nSuggestions for how to give the Temp space back to the Fusion volume?nMaybe delete the Temp partition and then resizeStack?