Cannot use Disk Utility to create partition from free space on external USB drive

disk-utilityhard drivepartition

I have a 3 TB Western Digital red disk in a USB hard drive dock.

The drive is GPT, and I have two volumes on it (one volume is "Microsoft Reserved", other volume is NTFS).

The other part of my drive is 1.5 TB of free space. I verified this on my Windows machine:

DISKPART> list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online          167 GB    20 GB
  Disk 1    Online          465 GB      0 B        *
  Disk 2    Online         2794 GB  1526 GB        *

DISKPART> select disk 2

Disk 2 is now the selected disk.

DISKPART> list part

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    Reserved           128 MB    17 KB
  Partition 2    Primary           1267 GB   129 MB

DiskPart shows 2 partitions – one 128 MB, and the other 1267 GB with 1526 MB of free space.

I took this drive over to my MacBook Pro running OS X El Capitan 10.11.3 and fired up Disk Utility, but for some reason it doesn't look like Disk Utility is seeing the free space, so I can't create a new volume.

Here are some screenshots:

… of the physical disk in Disk Utility (notice how there doesn't appear to be any unallocated space on the disk to create another volume:

Disk Utility Drive Overview

… of the two volumes in Disk Utility. Notice how the plus sign is greyed out so that I cannot create another partition with the free space.

enter image description here

I want to put encrypted Time Machine backups on the second partition that I create from the free space. Does that mean that I need to create the new partition from a Mac?

Best Answer

I think Disk Utility misses a proper EFI partition at the beginning of the disk.

If you don't want to completely erase the drive you should be successful following the steps below:

  • Open Terminal and enter the following to get an overview:

    diskutil list
    

    The 3 TB disk is your external disk. In the next steps I assume the disk identifier of your external disk is disk1

  • Get the block size of the external disk:

    diskutil info disk1 | grep "Device Block Size"
    

    In the next steps I assume that the Device Block Size is 512 bytes. If you get another block size (i.e. 4096 bytes) leave a comment.

  • Get the partition table of the external disk:

    sudo gpt -r show /dev/disk1
    

    The result is similar to the output below (your sizes are different though):

           start        size  index  contents
               0           1         PMBR
               1           1         Pri GPT header
               2          32         Pri GPT table
              34      262144      1  GPT part - E3C9E316-0B5C-4DB8-817D-F92DF00215AE
          262178        2014         
          264192  2244603904      2  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
      2244868096  2048002015         
      4292870111          32         Sec GPT table
      4292870143           1         Sec GPT header
    
  • Unmount the external disk:

    diskutil umountDisk /dev/disk1
    
  • Now add a third partition with

    sudo gpt add -b 2244870110 -i 3 -s 1000000000 -t 48465300-0000-11AA-AA11-00306543ECAC disk1
    

    I left some unallocated space (2014 blocks) between partition 2 and 3.

    The resulting partition table looks like this then:

           start        size  index  contents
               0           1         PMBR
               1           1         Pri GPT header
               2          32         Pri GPT table
              34      262144      1  GPT part - E3C9E316-0B5C-4DB8-817D-F92DF00215AE
          262178        2014         
          264192  2244603904      2  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
      2244868096        2014         
      2244870110  1000000000      3  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
      3244870110  1048000001         
      4292870111          32         Sec GPT table
      4292870143           1         Sec GPT header
    

    You should choose a bigger size than 1000000000 blocks. The number of blocks has to be dividable through 8. The max size in my case would have been 2048000000 (1000000000 + 1048000001).

  • Now format the new partition with a file system and name the volume (in the example below Backup):

    sudo newfs_hfs -J -v "Backup" /dev/disk1s3
    
  • Mount the volume and verify it:

    diskutil mount /dev/disk1s3
    diskutil verifyVolume /dev/disk1s3