MacOS – How to shrink Recovery HD on macOS Sierra

disk-utilitymacospartitionrecovery

After removing a Windows partition, my Recovery HD has increased in size to about 70 GB. I'd like to reclaim this disk space into my main HD, but cannot figure out how. What is the easiest way to do so?

The output of diskutil list gives:

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            429.9 GB   disk0s2
   3:                  Apple_HFS Recovery HD             69.9 GB    disk0s3

My machine is a 2015 MacBook Pro.

And the results of diskutil resizevolume disk0s3 limits give:

Resize limits for partition disk0s3 Recovery HD:
  Current partition size on map:              69.9 GB (69933821952 Bytes)
  Minimum size (constrained by file usage):   553.4 MB (553422848 Bytes)
  Recommended minimum size (if used for OS):  5.9 GB (5922131968 Bytes)
  Maximum size (constrained by map space):    69.9 GB (69933821952 Bytes)

Best Answer

  1. Reduce the size of the partition containing Recovery HD volume. You can do this by entering the command given below.

    diskutil  resizeVolume  disk0s3  660M 
    
  2. Download and install the third party tool gdisk.

  3. Boot to macOS Recovery over the Internet. Restart your Mac and immediately hold down the option++R key combination. Release the keys when the spinning globle appears.

  4. Partially disable System Intergity Protection (SIP). From the menu bar, select Utilities➔Terminal. Next, enter the command given below.

    csrutil  enable  --without  fs
    
  5. Boot back to macOS.

  6. Use the interactive command gdisk to change the partition type and attributes for disk3s3. Enter the command given below

    sudo  gdisk  /dev/disk0
    

    Note: The procedure below assumes field 49 (bit #49) is not set. If this field is set, then you should leave the field set. In other words, if the attribute value is 0002000000000000, then field 49 is set.

    Below is an example of using gdisk to repair your Mac.

    Note: You can exit gdisk at any time without save changes by entering a control+C.

    GPT fdisk (gdisk) version 1.0.3
    
    Warning: Devices opened with shared lock will not have their
    partition table automatically reloaded!
    Partition table scan:
      MBR: protective
      BSD: not present
      APM: not present
      GPT: present
    
    Found valid GPT with protective MBR; using GPT.
    
    Command (? for help): t
    Partition number (1-3): 3
    Current type is 'Apple HFS/HFS+'
    Hex code or GUID (L to show codes, Enter = AF00): AB00
    Changed type of partition to 'Recovery HD'
    
    Command (? for help): x
    
    Expert command (? for help): a
    Partition number (1-3): 3
    Known attributes are:
    0: system partition
    1: hide from EFI
    2: legacy BIOS bootable
    60: read-only
    62: hidden
    63: do not automount
    
    Attribute value is 0000000000000000. Set fields are:
      No fields set
    
    Toggle which attribute field (0-63, 64 or <Enter> to exit): 49
    Have enabled the 'Undefined bit #49' attribute.
    Attribute value is 0002000000000000. Set fields are:
    49 (Undefined bit #49)
    
    Toggle which attribute field (0-63, 64 or <Enter> to exit): 
    
    Expert command (? for help): w
    
    Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
    PARTITIONS!!
    
    Do you want to proceed? (Y/N): y
    OK; writing new GUID partition table (GPT) to /dev/disk0.
    Warning: Devices opened with shared lock will not have their
    partition table automatically reloaded!
    Warning: The kernel may continue to use old or deleted partitions.
    You should reboot or remove the drive.
    The operation has completed successfully.
    
  7. Enable SIP. Enter the command given below, then restart your Mac.

    sudo  csrutil  clear
    
  8. Recovery the free space back to the Macintosh HD volume. You can do this by entering the command given below

    diskutil  resizeVolume  disk0s2  R
    
  9. Restart your Mac then enter the command below to check the results.

    diskutil  list