I decided that I wanted to upgrade the storage in my MacBook Pro that’s about seven years old now from a spinning hard drive to solid-state storage. The computer came with a 750 GB hard drive and it was getting pretty full too.
SSDs come in pretty standard power-of-two sizes like 128 GB, 256 GB, 512 GB, etc. So you really can’t get a 750 GB SSD and since I was running out of space anyway I wanted to get a bigger one so I settled on a 1 TB SSD.
I ordered a Samsung 860 EVO drive from Amazon, picked the slow, free shipping but still got it in less than 24 hours of placing my order.
After the SSD arrived I removed the hard drive from the MacBook Pro and made a sector-by-sector image of it using a Linux system that I have around. I then took my sector-by-sector image and applied it to the new SSD.
Since the hard drive was 750 GB, I had 750 GB copied to the 1 TB SSD including the partition tables that indicated that the partitions totaled 750 GB. That means 250 GB of the 1 TB SSD is now unused and cannot currently be accessed. I anticipated this because I’ve done this many times for clients and I’m pretty familiar with how the partitions are laid out on a disk from previous professional experience.
Built in to OS X is Disk Utility, which handles managing the partitions on a disk. So when I put the new SSD in to the laptop I started in Recovery Mode, which allows you to run some limited things like reinstalling Mac OS X and running Disk Utility. So I start Disk Utility and it correctly shows the disk as 1 TB with a 750 GB partition and 250 GB unused. There was a small circle that looked like it could be grabbed to pull the existing partition to expand in to the unused 250 GB space but it simply wouldn’t let me. The same operation can be done from the command line but it would just generate an error.
Searching the Internet I came across this post on Stack Exchange. It got marked as a duplicate of another question and closed but the question it’s linked to isn’t really the same as this one (people on Stack Exchange and Stack Overflow are pretty quick to close questions as duplicates of another even though that’s not always the case). The comment added by “Dannie P” is actually the answer to the problem and involves the following:
- Booting into gparted with the drive attached.
- gparted will show a dialog box stating that the GPT doesn’t describe the entire disk and that it can fix that. Allow gparted to fix it.
- Create a partition in the unused space. This probably isn’t necessary once the GPT has been fixed but I did it anyway.
- Return to Disk Utility in OS X and delete the partition created in Step 3.
- Since I was using APFS, it automatically expanded the APFS volume to encompass the space the partition in Step 3 was using and now the entire drive is being used by the primary APFS volume.
Fixing the GPT (Global Partition Table) should be something that Disk Utility should be able to handle but obviously it isn’t set up to do that.