Cannot use Disk Utility to create partition from free space on external USB drive
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:
… 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.
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?
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