macOS Recovery – Handling Two Recovery Partitions

macosrecovery

Similar, but not a dupe of Time machine restored recovery partition, now I have two

I have a single Recovery partition on my boot drive, even after a recent Time Machine restore. I also intentionally keep 'spares' on other drives, in case of disaster, including an e-drive on the same disk as my Time Machine – so I'm fully prepared in case something ever goes wrong..

However, I've just noticed one drive has two Recovery Partitions.
I'm not sure whether this may cause problems in future; it doesn't seem to be giving me any issues right now, even if I boot to any of the recoveries I can see from the boot chooser, but wondered if it is possible/simple to remove the extra one – or even if it's worth the effort.

It's on a drive with 3 main partitions, Data [Downloads], Boot Camp [MacWin7] & a clone of my regular boot drive [KickClone]

I'm not certain how to even test what OS is on each Recovery, or if it's truly important that it's Sierra.

So, I guess the actual question is …

Is it best to leave it, or to try remove it?
If remove, that would of course lead to a secondary & tertiary, 'which one?' & 'how?'

I wouldn't want to remove it if it's in any way 'dangerous', because I don't have a direct clone backup of the entire drive, only of each partition's contents, so I don't want to have to do a full rebuild of the structure.

/dev/disk3 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk3
   1:                        EFI EFI                     209.7 MB   disk3s1
   2:                  Apple_HFS Downloads               999.3 GB   disk3s2
   3:                 Apple_Boot Recovery HD             784.2 MB   disk3s3
   4:       Microsoft Basic Data MacWin7                 209.1 GB   disk3s4
   5:                  Apple_HFS KickClone               1.8 TB     disk3s5
   6:                 Apple_Boot Recovery HD             1.3 GB     disk3s6

Best Answer

disk3s3 and disk3s6 are both non-default Recovery HDs. I've never seen other sizes than ~650 MB - except after cloning a drive with Carbon Copy Cloner which resulted in a 1.3 GB RecHD partition. 1.3 GB is the size of the uncompressed Base OS X.

To get the system version of the Base OS X do the following:

  • check with mount that no other volume with the name Recovery HD is mounted, else: unmount it with diskutil umount /Volumes/Recovery\ HD
  • mount the first RecHD slice r/o:

    diskutil mount readOnly /dev/diskXsY #i.e. disk3s3
    
  • get the system version of the "outer" Volume:

    grep ProductVersion -a2 /Volumes/Recovery\ HD/com.apple.recovery.boot/SystemVersion.plist 
    
  • get the system version of the inner Base OS X System volume

    hdiutil mount /Volumes/Recovery\ HD/com.apple.recovery.boot/BaseSystem.dmg
    grep ProductVersion -a2 /Volumes/OS\ X\ Base\ System/System/Library/CoreServices/SystemVersion.plist 
    

Both ProductVersions (outer and inner) should be identical.

Check the content of the volumes:

  • Recovery HD should contain 3 folders: com.apple.boot.S, com.apple.recovery.boot and System
  • Base OS X System looks like a normal system volume except /Users is missing and usually invisible folders/links are visible (e.g. /bin or /etc)

  • Unmount first the Base OS X volume, then the Recovery HD volume.

    diskutil umount /Volumes/OS\ X\ Base\ System
    diskutil umount /Volumes/Recovery\ HD
    
  • Repeat all previous steps with your second Recovery HD:

    diskutil mount readOnly /dev/disk3s6
    ...
    

Depending on your results (are both Recovery HDs/Base OS Xs legit regarding their folder structure and the inner & outer ProductVersion) and whether the disk contains a bootable system volume at all (probably KickClone), delete one or both slices. If KickClone contains a bootable system, the (succeeding) Recovery HD should have the same system version (ProductVersion) as KickClone (grep ProductVersion -a2 /Volumes/KickClone/System/Library/CoreServices/SystemVersion.plist).

To delete/remove a Recovery HD simply merge it with the preceding partition: