Today I took delivery of a new MacBook Pro, with M1 Pro processor1. In order to move all of my data over to the new machine, I decided to give Apple’s Migration Assistant tool a try based on the recommendation of John Gruber. Migration Assistant does what it says on the tin; it migrates data from one machine to another. Similar to restoring an iPhone or iPad from an iCloud backup, but there are certain advantages which really blew me away!

To get started, you boot up and begin configuring the new machine. Several steps into the process you are asked “Would you like to migrate data from another Mac?” There are two options - using the Mac itself, or using a Time Machine backup. I had a Time Machine backup, but it is on an external hard drive and I figured the USB 3 interface would be a limiting factor for speed. Instead, I hooked the new Macbook Pro directly into the Macbook Air using a 0.5 meter Thunderbolt 3 cable.

Once the transfer begins, you can see (what I assume to be) maximum transfer speeds of each method. Spoiler, I did not observe speeds near 1,892 MB/s. I did start a timer on my watch to track the complete end-to-end transfer time.

As the transfer carried on, I observed the estimated time ticking down. It started around 40 hours and I snapped a few pictures of the timing decreasing as data was transferred. The transfer speeds (103.5 MB/s and 32.8 MB/s in the screenshots) were highly inconsistent and bounced up and down throughout the entire transfer process.

And the grand total time to transfer about 120 GB of data was…

19 minutes! That is incredible. It comes to an average transfer speed of 105 MB/s, based on 120 GB of data passing in 19.5 minutes. Nothing close to the theoretical max I was quoted by Connection Details of 1,892 MB/s2, but still very, very snappy.

Some additional notes:

  • It was mentioned on Accidental Tech Podcast recently, that if you add a Thunderbolt cable in the middle of a migration assistant transfer, it switches to this new faster method! I did not attempt this, but it is good to know if you start migration assistant and find it quite slow, you can run out, grab a Thunderbolt cable, and improve the performance simply by plugging it in.
  • MacOS settings migrate from one machine to the other. Somehow, this ‘broke’ the notch display on the MacBook Pro. Nothing was showing up in the notch area. By changing the resolution in System Preferences I was able to correct this. It seems the scaled resolution I was using on the MacBook Air migrated to the Pro; I had to switch to any other resolution (native or scaled) and that sorted it.
  • My SSH keys migrated. Given that I plan to use this new Macbook just like my old one…I guess this is ok? It feels odd to use the same keys from another machine, but once I nuke that old machine I suppose these keys will be unique to just one physical device.
  • 1Password migrated without issue. I was expecting to need to sign-in again, and also supply my Secret Key to get this data setup on a new device. Weird.
  • Nextcloud migrated, although the sync seemed to have some issues. (This might have been on me and an issue from the old machine, though.)
  • Apps which have a license key (Bartender, AirBuddy) migrated without issue. I did not need to re-enter licensing information, which, had this been Mac number N which put me over the license key limit makes you wonder. At what point are those limits checked and enforced?
  • It is remarkable how many times you must sign in to iCloud when setting up a new device. Once when you login, again when you open Messages (for the iCloud storage of those messages?), again when a stiff breeze blows, etc.
  • Wireguard’s config migrated, but since this is technically a different machine I created a new config (public-private keypair) for it.

  1. Ugh, Apple, your naming sucks. It’s a Macbook Pro. And it’s got a Pro chip inside. Pro Pro Pro! No one will be confused by this sort of product marketing. ↩︎

  2. At 1,892 MB/s this transfer would have completed in 65 seconds. That would have been extraordinary! ↩︎