MacOS – MacBook Pro upgrade to SSD migrating OSX and Bootcamp partitions

bootcamphard drivemacosmigrationssd

I wasn't able to find the info I needed here or on Apple's own forums or via Google, so here goes.

I have a MacBook Pro 15" early 2011 model with a 500 GB internal hard disk drive (non-SSD). Currently running OSX 10.8.5 on a 300 GB partition, and Windows 7 via Bootcamp on a 200 GB partition. OSX is under backup via TimeMachine, Windows is backed up manually on an external hard drive as a simple copy.

I would like to replace the internal hard disk drive with an Intel DC S3500 480GB SSD.
Changing the drive itself should be easy via a guide I've found. But…
instead of the 300GB/200GB partitions I currently have, I'm aiming for 400GB/80GB partitions on the SSD. The Windows 7 Bootcamp partition I currently have uses only 70GB, so I'd like it to occupy the 80GB partition on the SSD.
Once I'm on the SSD, I will upgrade OSX to Yosemite.

Question:
I would like to migrate both my current installation of OSX and the installation of Windows to their respective new (differently sized) partitions on the SSD, without having to re-install the OS'es.
What steps do I need to take to make this work? (Any pitfalls?)

Update:
Command output requested by David Anderson:

sudo fdisk /dev/disk0
Disk: /dev/disk0    geometry: 60801/255/63 [976773168 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE 1023 254  63 - 1023 254  63 [         1 -     409639] <Unknown ID>
 2: AF 1023 254  63 - 1023 254  63 [    409640 -  584931504] HFS+        
 3: AB 1023 254  63 - 1023 254  63 [ 585341144 -    1269544] Darwin Boot 
*4: 07 1023 254  63 - 1023 254  63 [ 586610688 -  390162432] HPFS/QNX/AUX

diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            299.5 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:       Microsoft Basic Data BOOTCAMP                199.8 GB   disk0s4

diskutil cs list
No CoreStorage logical volume groups found

Best Answer

Update 3:

There were a two reasons I wanted the output from diskutil and fdisk. First I wanted to check if rEFIt was installed on its own partition. It is not. This leaves either the EFI partition or the OS X partition. The normal (automatic) installation would be OS X, which is backed up with Time Machine. To be safe, you could backup the EFI partition. This is not a problem since it is only 210 MB in size. I usually just make an exact image copy of the entire partition. The command is shown below. The image file efi.img will be stored in the root directory of the OS X partition.

sudo dd if=/dev/disk0s1 of=/efi.img bs=10000

I do not know if Time machine will backup the "Recovery HD" partition. It is only 650 MB in size. Again, you can just image it to the root of OS X using the command below. My outline did not include migrating this partition to the new disk. Therefore, you probably will never use this file.

sudo dd if=/dev/disk0s3 of=/RecoveryHD.img bs=10000 

The second reason, for running the diskutil and fdisk commands, was to determine if you are using a GPT or hybrid GPT/MBR partitioning scheme. You are using hybrid GPT/MBR. I assume then that Windows is using the legacy BIOS method of booting and not using the EFI to boot.

According to your original post, you intend to upgrade to Yosemite after migrating to the new drive. It just so happens, I am trying to help someone (riznad) who has already done this. See here. Upgrading to Yosemite disabled rEFId and created a new "Recovery HD" partition. So you may need to reinstall rEFId. I would not recommend upgrading to rEFInd.

I am not sure why you felt the need to use the rEFId boot manager. I use the System Preferences in OS X to boot to windows. Apple provides Boot Camp to boot from Windows back to OS X. On startup, you can hold the alt key to choose an operating system. I rarely need to do that. In riznad's case, rEFId makes sense, that computer has a third partition running the Fedora operating system.

If you wish to have a partition writeable by both OS X and Windows, now would be a good time to create it. This can be done by creating the partitions in the following order using the Disk Utility. First create the MS-DOS(FAT) partition for windows 7. This partition will be changed to NTFS by Winclone. Format the next partition as MS-DOS(FAT) or ExFat. Finally, put the OS X partition last.


Update 2:

Just FYI, the output of chkdsk can be viewed in the Event Viewer. An example is shown below. You can "Open Image in a New Window" to enlarge.

enter image description here

An example output is shown below.

Checking file system on C:
The type of the file system is NTFS.
Volume label is Orca.


One of your disks needs to be checked for consistency. You
may cancel the disk check, but it is strongly recommended
that you continue.
Windows will now check the disk.                         

CHKDSK is verifying files (stage 1 of 3)...
  123136 file records processed.                      
File verification completed.
  171 large file records processed.                    
  0 bad file records processed.                                        
  2 EA records processed.                                              
  50 reparse records processed.                                       
CHKDSK is verifying indexes (stage 2 of 3)...
  168030 index entries processed.                                         
Index verification completed.
  0 unindexed files scanned.                                          
  0 unindexed files recovered.                                       
CHKDSK is verifying security descriptors (stage 3 of 3)...
  123136 file SDs/SIDs processed.                                         
Cleaning up 12 unused index entries from index $SII of file 0x9.
Cleaning up 12 unused index entries from index $SDH of file 0x9.
Cleaning up 12 unused security descriptors.
Security descriptor verification completed.
  22448 data files processed.                                            
CHKDSK is verifying Usn Journal...
  36677272 USN bytes processed.                                             
Usn Journal verification completed.
Windows has checked the file system and found no problems.

 107460604 KB total disk space.
  30413860 KB in 94522 files.
     64108 KB in 22449 indexes.
         0 KB in bad sectors.
    228944 KB in use by the system.
     65536 KB occupied by the log file.
  76658804 KB available on disk.

      4096 bytes in each allocation unit.
  26865151 total allocation units on disk.
  19164701 allocation units available on disk.

Internal Info:
00 e1 01 00 e3 c8 01 00 a5 53 03 00 00 00 00 00  .........S......
bf 03 00 00 32 00 00 00 00 00 00 00 00 00 00 00  ....2...........
11 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00  ................

Windows has finished checking your disk.
Please wait while your computer restarts.

What you are looking for is the messages Windows has checked the file system and found no problems. and 0 KB in bad sectors.


Update 1:

It is my understanding rEFIt installs in the OS X partition. According to the rEFIt documentation, it is also possible for rEFIt to be installed on a separate partition or on the hidden EFI partition. No mention of being installed on the Windows partition.

Assuming rEFIt was installed using the automatic installation, then it should be saved by Winclone followed by Time Machine. But to be honest, I have never used rEFIt.

To be safe, it would be useful for you to post the output from the following commands. They can be entered from a Terminal application window. The first one will ask for your login password. This is normal.

sudo  fdisk  /dev/disk0
diskutil  list
diskutil  cs  list

Other than Winclone creating a backup of Windows on you OS X partition, the procedure does not change the files on your original disk. If you wish, you can also backup Windows to a external disk that is HFS formatted (Mac OS Extended Journaled). This way Windows does not have to pass through Time Machine.

I don't know where you are living. Where I live, I would go to Microcenter and buy an enclosure for the new disk. I would then plug the enclosed drive into a USB port on the Mac. Transfer everything over. I would also boot OS X on the the enclosed drive and test things out. From my understanding, you can not boot windows. You might be able to from Parallels. I have never used Parallels. I would then remove the drive and return the enclosure for a full refund. (Actually, have done this a few times with 3.5" drives.) The drive could then be installed in the MacBook Pro.

If you proceed, it would be a good idea to run CHKDSK on the windows partition before backing up with Winclone. CHKDSK (Check Disk) has be around since the original IBM PC-DOS 1.0. The best way to do this is to open a Command Prompt window as an Administrator under Windows 7 and enter the command:

fsutil  dirty  set  c:

After entering the command, reboot (restart) Windows. It usually is not necessary to see the results, but if you wish, I will post how to do so using the event viewer. (You can also watch the screen during boot up)


I can outline the basic steps using the Winclone product.

  1. Purchase, download and install Winclone to your OS X partition.
  2. Use Winclone to backup Windows to your OS X partition.
  3. Make sure OS X is backed up to Time Machine.
  4. Install the new disk
  5. Do a internet recovery boot. This involves hold the cmd-alt-R keys down at startup and booting over the internet.
  6. Partition the new disk using the Disk Utility. Format the OS X partition as "Mac OS Extended (Journaled)" and the Windows partition as "MS-DOS (FAT)".
  7. Restore OS X using time Machine.
  8. Reboot the computer to the new OS X partition.
  9. Run Winclone to restore Windows 7 back to the new 80 GB partition.
  10. Drag the Winclone Windows 7 backup to the trash to recover the space on the OS X partition (Optional).
  11. You are done.

If you wish to proceed, let me know. Also, if klanomath happens to post, I would recommend any of his solutions. He has more experience with Time Machine than I have.