I recently found out that Apple’s Disk Utility won’t allow multiple partitions with a Master Boot Record. This is incredibly annoying. But the CLI will.
Warning: There is no confirmation, no “are you sure?” prompts. diskutil
will
mess your disks up, zero fucks given. You need to double and triple check the
commands you issue. That is all.
$ diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME \
SIZE IDENTIFIER
0: GUID_partition_scheme \
*121.3 GB disk0
1: EFI EFI \
209.7 MB disk0s1
2: Apple_CoreStorage XXX \
120.5 GB disk0s2
3: Apple_Boot Recovery HD \
650.0 MB disk0s3
[...]
/dev/disk2 (external, physical):
#: TYPE NAME \
SIZE IDENTIFIER
0: GUID_partition_scheme \
*2.0 TB disk2
1: EFI EFI \
209.7 MB disk2s1
2: Apple_HFS one \
1.8 TB disk2s2
3: Apple_HFS two \
249.7 GB disk2s3
This command will be your friend, a lifesaver. Learn to love it. It shows the
disks attached to the computer. You’re most interested in the value in the
IDENTIFIER
column, but the other columns will help you figure out what’s what.
In this case, we’ve got two physical disks, one internal disk and one external. Do not touch the internal disk, this is your hard drive.
To partition a disk, use the partitionDisk
subcommand. The help is actually
rather good. To view which filesystems you can create, you’ll also need the
listFilesystems
subcommand.
$ diskutil partitionDisk -h
[...]
$ diskutil listFilesystems
[...]
Briefly, you need:
- The disk identifier (you can also use the mount point instead)
- The number of partitions (optional, will be inferred otherwise - a good sanity check)
- The partition scheme (optional, will be GUID/GPT by default)
- Next come the partition parameters
- Partition format, from
diskutil listFilesystems
- Partition name
- Partition size
- repeat
For partition size, you can use decimal numbers with the suffixes B, K, M, G,
T, P (bytes, kilobytes, megabytes, gigabytes, terabytes or petabytes), % of
the disk size, or R
for remainder.
These examples show you how to create one, two or three partitions:
$ sudo diskutil partitionDisk disk3 1 \
JHFS+ one R
$ sudo diskutil partitionDisk disk3 2 GPT \
JHFS+ one R \
JHFS+ two 250G
$ sudo diskutil partitionDisk disk3 MBR \
JHFS+ one R \
JHFS+ two 250G \
ExFAT three 10G