Do step one first, if you are still booted to macOS. Otherwise, do step 2 first.
Determine the partition offset and disk size in blocks. To do this, enter the command given below in a Terminal application window.
diskutil info disk0s2 | grep -e Offset -e Size
Below is an example output where the block size is 512 bytes. From the output, the partition offset and disk size can be determined as 409640 blocks and 195312500 blocks, respectively.
Partition Offset: 209735680 Bytes (409640 512-Byte-Device-Blocks)
Disk Size: 175.8 GB (175790436352 Bytes) (exactly 343340696 512-Byte-Units)
Device Block Size: 512 Bytes
Below is an example output where the block size is 4096 bytes. From the output, the partition offset can be determined as 76806 blocks. To get the disk size in 4096 bytes blocks, the value of 390625232 512-Byte-Units needs to be divided by 8 to get 48828154 blocks.
Partition Offset: 314597376 Bytes (76806 4096-Byte-Device-Blocks)
Disk Size: 200.0 GB (200000118784 Bytes) (exactly 390625232 512-Byte-Units)
Device Block Size: 4096 Bytes
Use the key combination Option-⌘-R to boot to macOS Recovery over the Internet.
Enter the commands below in a Terminal application window. Here, you will need to replace <offset-in-blocks>
and <size-in-blocks>
with an actually numbers.
Disk=$(diskutil list | grep "(internal, physical)")
Disk=${Disk/ *}
gpt -f remove -i 2 disk0$Disk
gpt -f add -i 2 -b <offset-in-blocks> -s <size-in-blocks> -t apfs disk0$Disk
For example, if you used the output from the first example in step 1, then you would enter the commands given below.
Note: The commands are case-sensitive.
Disk=$(diskutil list | grep "(internal, physical)")
Disk=${Disk/ *}
gpt -f remove -i 2 $Disk
gpt -f add -i 2 -b 409640 -s 343340696 -t apfs $Disk
Note: Below is the legacy version of the above commands. You can use these commands, if the above two commands generate an illegal option
error message.
Disk=$(diskutil list | grep "(internal, physical)")
Disk=${Disk/ *}
diskutil unmountdisk $Disk
gpt remove -i 2 $Disk
diskutil unmountdisk $Disk
gpt add -i 2 -b <offset-in-blocks> -s <size-in-blocks> -t 7C3457EF-0000-11AA-AA11-00306543ECAC $Disk
Boot back to macOS.
Enter the command given below to recover the free space.
sudo diskutil apfs resizeContainer disk0s2 0