How to create Recovery Partition for new SSD after restore via SuperDuper I recently installed a new SSD on my old MacBook Pro - replacing the HDD. It's running El Capitan. After installing the new drive, I booted from my SuperDuper clone, formatted the new internal SSD to be Mac OS X Journaled, and restored the files from the backup to the new SSD using SuperDuper.

However - I just realized that the new SSD does not have a recovery partition. Is there a way to create a recovery partition without doing a full OS X El Capitan reinstall?
If you still have the Recovery partition, you can transfer the partition manually.

The example given below was generated using two sparse disk images and Yosemite (OS X 10.10.5). You may have to jump though hoops that I did not have too. Some of these hoops are:


El Capitan and later users may need to disable System Integrity
Protection (SIP).
To enter some of the commands, you may need to boot from a USB device
(flash drive, HDD or SSD) or use Internet Recovery.
Add or remove the command prefix sudo.
Use the cd command to navigate to the proper directory (folder).
Precede a command or file with the proper path.
Make the proper adjustments if the sector size is not 512 bytes.
Deal with addition complexities, if employing Core Storage.


Below is the procedure for copying a Recovery partition from /dev/disk1 to /dev/disk2. This procedure requires the use of a third party command called gdisk. More information about this command can be found at the site "GPT fdisk Tutorial".

The initial contents of /dev/disk1 and /dev/disk2 are given below.

Steelhead:recover davidanderson$ sudo gpt -r show /dev/disk1
Password:
      start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6         
         40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
     409640  197892752      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  198302392    1697608      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  200000000          7         
  200000007         32         Sec GPT table
  200000039          1         Sec GPT header
Steelhead:recover davidanderson$ sudo gpt -r show /dev/disk2
      start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6         
         40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
     409640   99328216      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
   99737856     262151         
  100000007         32         Sec GPT table
  100000039          1         Sec GPT header



Image the entire source partition. This partition is very small and
normally is not mounted. Simply copy the partition to a file.

Steelhead:recover davidanderson$ sudo dd if=/dev/disk1s3 of=recovery.binary bs=40960
21220+1 records in
21220+1 records out
869175296 bytes transferred in 44.563133 secs (19504358 bytes/sec)
Steelhead:recover davidanderson$ ls -l
total 1697608
-rw-r--r--  1 root  staff  869175296 Jul 20 11:53 recovery.binary

Make room of for the new Recovery partition.

Steelhead:recover davidanderson$ diskutil resizevolume /dev/disk2s2 limits
For device disk2s2 MacintoshHD:
        Current size:  50.9 GB (50856046592 Bytes)
        Minimum size:  5.5 GB (5524418560 Bytes)
        Maximum size:  50.9 GB (50856046592 Bytes)
Steelhead:recover davidanderson$ diskutil resizevolume /dev/disk2s2 45G
Started partitioning on disk2s2 MacintoshHD
Verifying the disk
Verifying file system
Checking Journaled HFS Plus volume
Checking extents overflow file
Checking catalog file
Checking multi-linked files
Checking catalog hierarchy
Checking extended attributes file
Checking volume bitmap
Checking volume information
The volume MacintoshHD appears to be OK
File system check exit code is 0
Resizing
Finished partitioning on disk2s2 MacintoshHD
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *51.2 GB    disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS MacintoshHD             45.0 GB    disk2s2

Create the new Recovery partition on /dev/disk2. The new
partition has to be exactly the same size as the existing Recover
partition.

Steelhead:recover davidanderson$ sudo gdisk /dev/disk2
Password:
GPT fdisk (gdisk) version 1.0.1

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): n
Partition number (3-128, default 3): 
First sector (34-100000006, default = 88300264) or {+-}size{KMGTP}: 
Last sector (88300264-100000006, default = 100000006) or {+-}size{KMGTP}: +1697608
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 &lt;Enter&gt; 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 &lt;Enter&gt; 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/disk2.
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.
Steelhead:recover davidanderson$ sudo gpt -r show /dev/disk2
      start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6         
         40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
     409640   87890624      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
   88300264    1697608      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
   89997872   10002135         
  100000007         32         Sec GPT table
  100000039          1         Sec GPT header

Eject and reattach /dev/disk2. If you can not do this, then
restart the Mac.

Steelhead:recover davidanderson$ diskutil eject /dev/disk2
Disk /dev/disk2 ejected

Copy the saved image to the new Recovery partition. Since this is an
exact copy, use the hfs.util command to generate a new UUID key
for the HFS file system.


  When using El Capitan (OS X 10.11), the full path to the hfs.util command is
  System/Library/Filesystems/hfs.fs/Contents/Resources/hfs.util.


Steelhead:recover davidanderson$ sudo dd if=recovery.binary of=/dev/disk2s3 bs=40960
Password:
21220+1 records in
21220+1 records out
869175296 bytes transferred in 52.127608 secs (16673992 bytes/sec)
Steelhead:recover davidanderson$ /System/Library/Filesystems/hfs.fs/hfs.util -k disk2s3; echo
78A8438E-2299-3AF0-AD9E-3AC225B0554A
Steelhead:recover davidanderson$ /System/Library/Filesystems/hfs.fs/hfs.util -s disk2s3
Steelhead:recover davidanderson$ /System/Library/Filesystems/hfs.fs/hfs.util -k disk2s3; echo
0F4F5893-D9E1-3512-9B2B-2AEA0DE9FDE3

Eject and reattach /dev/disk2. If you can not do this, then
restart the Mac.

Steelhead:recover davidanderson$ diskutil eject /dev/disk2
Disk /dev/disk2 ejected

Attempt to recover any leftover free space.

Below a is first attempt. The diskutil resizevolume /dev/disk2s2 R
command fails.

Note also that diskutil resizevolume /dev/disk2s2 limits command
reports the wrong maximum size. 

Steelhead:recover davidanderson$ diskutil resizevolume /dev/disk2s2 R
Started partitioning on disk2s2 MacintoshHD
Verifying the disk
Verifying file system
Checking Journaled HFS Plus volume
Checking extents overflow file
Checking catalog file
Checking multi-linked files
Checking catalog hierarchy
Checking extended attributes file
Checking volume bitmap
Checking volume information
The volume MacintoshHD appears to be OK
File system check exit code is 0
Resizing
Error: -69742: The requested size change for the target disk or a related disk is too small;
please try a different disk or partition, or make a larger change
Steelhead:recover davidanderson$ diskutil resizevolume /dev/disk2s2 limits
For device disk2s2 MacintoshHD:
        Current size:  45.0 GB (44999999488 Bytes)
        Minimum size:  5.5 GB (5524459520 Bytes)
        Maximum size:  45.0 GB (44999999488 Bytes)


Try again, but this time compute how large partition /dev/disk2s2
should be.

Steelhead:recover davidanderson$ sudo gpt -r show /dev/disk2
Password:
      start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6         
         40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
     409640   87890624      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
   88300264    1697608      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
   89997872   10002135         
  100000007         32         Sec GPT table
  100000039          1         Sec GPT header
Steelhead:recover davidanderson$ expr 10002135 \* 512 / 100000000 + 450 
501
Steelhead:recover davidanderson$ diskutil resizevolume /dev/disk2s2 50.1G
Started partitioning on disk2s2 MacintoshHD
Verifying the disk
Verifying file system
Checking Journaled HFS Plus volume
Checking extents overflow file
Checking catalog file
Checking multi-linked files
Checking catalog hierarchy
Checking extended attributes file
Checking volume bitmap
Checking volume information
The volume MacintoshHD appears to be OK
File system check exit code is 0
Resizing
Waiting for the disks to reappear
Finished partitioning on disk2s2 MacintoshHD
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *51.2 GB    disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS MacintoshHD             50.1 GB    disk2s2
   3:                 Apple_Boot recovery                869.2 MB   disk2s3
Steelhead:recover davidanderson$ sudo gpt -r show /dev/disk2
Password:
      start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6         
         40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
     409640   97851560      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
   98261200    1697608      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
   99958808      41199         
  100000007         32         Sec GPT table
  100000039          1         Sec GPT header


This attempt succeeded. In practice, you never recover all the free
space. Note that the new Recovery partition /dev/disk2s3 was
relocated automatically.