MacOS – Unable to Resize Partitions

disk-utilitymacmacospartition

I have recently created a partition on my macbook air running OS X 10.9, and this was to run install another OS instance (Yes, OS X 10.10 Yosemite, but that is an aside to the query I have) on it.

I got the partition running fine, with the OS working fine as well, but now when I go back into Disk Utility, I noticed two things that are wrong:

  • Firstly, the disk that houses the two partitions has taken the name that I had thought I had given the new partition ("Yosemite"), instead of what it originally said, somewhere along the lines of "125GB Hard Drive" or similar.

  • Perhaps due to this, I believe, the tabs have changed when I select this disk, and I can no longer resize the partitions. The options are greyed out, and I cannot drag to resize either.

The Disk Utility looks similar to that seen in this question: Unable to adjust partition of USB drive with Mountain Lion Disk Utility though my computer is not encrypted, and it is the computer, not the USB I am having trouble with.

I tried entering Disk Utility from the Recovery Mode (by holding down option at start up), but the problem still persists.
I have tried changing the start up discs between the two, but still nothing changed in the menu.

I believe that a reason for this problem is that somehow the drive is now a logical volume group. I don't really understand what this is, and how to fix it.

Note, this question is purely about partitioning, I do intend to
use Yosemite on the partition when it is working, but at present
it's a plain Mavericks system with a partitioning problem.

Here is an image of my Disk Utility: Screenshot of Disk Utility

Best Answer

If I understand your question correctly you are trying to resize the volume group or actually one of the volumes within a group. From what I could gather your disk was converted to a CoreStorage Volume. Could you please verify that by issuing the following command in a terminal and check if you get a similar output to the one in the picture:

diskutil corestorage list

Output from diskutil

The currently available Disk Utility doesn't support resizing of logical Volumes. However using the command line, there is a undocumented function that allows you to resize Volumes.

If you consult the help command of diskutil you will receive the following output:

chris$ diskutil corestorage

Usage:  diskutil [quiet] coreStorage|CS <verb> <options>,
    where <verb> is as follows:

 list                     (Show status of CoreStorage volumes)
 info[rmation]            (Get CoreStorage information by UUID or disk)
 convert                  (Convert a volume into a CoreStorage volume)
 revert                   (Revert a CoreStorage volume to its native type)
 create                   (Create a new CoreStorage logical volume group)
 delete                   (Delete a CoreStorage logical volume group)
 createVolume             (Create a new CoreStorage logical volume)
 deleteVolume             (Delete a volume from a logical volume group)
 encryptVolume            (Encrypt a CoreStorage logical volume)
 decryptVolume            (Decrypt a CoreStorage logical volume)
 unlockVolume             (Attach/mount a locked CoreStorage logical volume)
 changeVolumePassphrase   (Change a CoreStorage logical volume's passphrase)

As you can see, it doesn't offer any option of resizing a Volume, hence my guess why Disk Utility doesn't allow you to resize.

However the following undocumented functions exists:

    chris$ diskutil corestorage resizeVolume

Usage:  diskutil coreStorage resizeVolume
        lvUUID|MountPoint|DiskIdentifier|DeviceNode size
Resize a logical volume, which is one of one or more disks that consume storage
out of a logical volume group. The logical volume group will have more or less
available space after this operation, if it was a shrink or grow, respectively.

Example: diskutil coreStorage resizeVolume
         11111111-2222-3333-4444-555555555555 10g

The resizeVolume function isn't listed in the first listing of available commands above but it still exists and it even provides you with an example on how to use it.

With this command and the correct UUID of the Volume it should be possible to resize one of the Volumes within your logical group.

I did some more digging around the command line and came across the following commands:

Physical Volume (Disk) Commands

  • resizeDisk (undocumented) – Resize a physical volume
  • removeDisk (undocumented) – Remove a physical volume from a logical volume group
  • addDisk (undocumented) - Add a new physical volume to a logical volume group

Logical Volume Commands

  • deleteVolume (undocumented) – Delete a logical volume and all of its contents
  • resizeVolume (undocumented) – Grow or shrink a logical volume
  • resizeStack (undocumented) – Grow or shrink a logical volume as well as the volume group and physical volume.