Select Page

Every now and then you want to move the data a user has accumulated on one Mac to another. When you are setting up a new Mac, you are offered the opportunity to perform this operation as part of the initial workflow, at which point you could use either of the approaches described below. If you choose not to do this during the initial configuration stage, then you are able to start the user data migration process at a later time by the running the Migration Assistant. The choice of approach will vary because of the relative ages of the Macs involved (eg. a standard lease replacement will involve machines differing by three years or more), the availability of the various tools (what cables are available, what software, etc), the state of the hardware (eg. you may be recovering data from a broken system), and user requirements (they may not want their old settings, etc). The following image shows a variety of options possible for connecting 3 generations of iMac to each other.

Three generations of iMac

Three generations of iMac

ethernet-ethernet,
thunderbolt-thunderbolt/ethernet-ethernet (adapter in between)
use the network approach

firewire-firewire,
thunderbolt-thunderbolt/firewire-firewire (adapter in between)
target mode OR network approach is possible
target mode would normally be easier

thunderbolt-thunderbolt
target mode OR network approach is possible
target mode would normally be easier

Note the displayport in lower part of the diagram. This looks like a thunderbolt port, but is a display interface -somewhere to plug in an external monitor or projector. The icon above the port tells you that it is a display port. Thunderbolt ports have a little lightning icon.

In addition to the network vs. target mode approaches described here, there are two further basic options.

  • It is possible to recover user data from a Time Machine back up into a new system. This works in much the same way as the target mode approach, except the source machine does not need to be present.
  • It is possible to manually copy files between the source and destination Macs. This is fine for most user data, but is not an easy way to migrate user preferences and configurations.

The Migration Assistant

The Migration Assistant is a utility -you will find it in the Utilities folder MacMac-finderUtilities In the Finder select Utilities from the Go menu. MacMac-Migration Assistant To run the process, you need administrative access to the machine you are running on -if you use the network method, then you will need administrative access on BOTH Macs. If you use the firewire/thunderbolt approach, then you need to be able to boot the machine you are moving data from, into target mode. While you are able to drag and drop data between machines using a network link, or by using target mode, this manual approach is more technically involved if you want to merge the data with a user account. The Migration Assistant takes care of moving user account details as well as data. It can also migrate applications and system setting data. On recently deployed systems in the University, disable real time file proterction in NOD32 prior to doing this -it speeds up the process somewhat.

The network approach (via ethernet)

In this approach, BOTH Macs run the migration assistant. The machines create a small network, and data is shared between the migration agents running on each. The migration offers a selection of processes once you provide administrative credentials. The destination machine, will follow the copy data from another Mac… process, while the source machine would follow the copy data to another Mac… process.

Ethernet cable

Ethernet cable

A copper link between two machines can run at 1Gb/s -so this is a reasonably fast approach. If you are able to configure it, you could potentially use a thunderbolt link with a possible upper limit of 10Gb/s.

  • Both Macs are running a working current OS.
  • You have administrative access to both Macs.
  • You have the recovery key or login password associated with any data that may be protected using File Vault.
  • The machine the data is being migrated FROM (the source Mac) has a configured sharing name. eg. MacMac-sharingname
  • Both Macs have ethernet (or some other common connection such as a configured firewire or thunderbolt network interface). You do not need a special cable or switch, just use a normal UTP Cat5/Cat6 cable with RJ45 connectors at each end. NOTE -you can do this with a wireless link, but the connection may be more susceptible to disruption.
  • Both Macs have a reliable power supply and will not go to sleep or shutdown during the hours it might take to move data.

refer to: http://support.apple.com/kb/HT4889

The target mode approach (firewire or thunderbolt)

In this approach the machine hosting the data you want to migrate (the source) becomes an external hard drive for the other machine (the destination). Once you plug in a thunder or firewire cable to a Mac, you can restart it into target mode by configuring this option in the the Start Up Items system preference, or by holding down the T key on a USB connected keyboard (wireless keyboards are not useful for this).

Thunderbolt cable

Thunderbolt cable

  • You have administrative access to the destination.
  • You are able to start the source in target mode. This requires administrative access in the OS of the source Mac, or access to firmware based processes (these can be protected by a firmware password -but in practice you do not see this much).
  • You have the recovery key or login password associated with any data that may be protected using File Vault.

refer to: http://support.apple.com/kb/PH13842

How long?

Assuming you know how much data you are moving, some rough calculations can be made based on the following. Invariably it will be slower! ethernet-ethernet, thunderbolt-thunderbolt/ethernet-ethernet

  • Line speed 1024Mb/s
  • Theoretical 1GB every 8 seconds
  • Real world test, 8.93GB in 11 minutes (network approach, iMac 10.8.5 – iMac 10.9.3)

thunderbolt-thunderbolt

  • Line speed 10240Mb/s
  • Theoretical 1GB every 0.8 seconds
  • Real world test, 8.61GB in 12 minutes (target mode approach, iMac 10.8.5 – iMac 10.9.3).

firewire-firewire thunderbolt-thunderbolt/firewire-firewire (assuming the 9 pin variant shown in the images above)

  • Line speed: 800Mb/s
  • Theoretical 1GB every 10 seconds
  • No real world test of this yet, but it is likely this would be similar to the thunderbolt-thunderbolt example above.

Manual copying

A drag and drop copy of the same data over the target mode link, was faster, but the POSIX permissions and ACLs were messed up, and the system did not create user details -this had to be done manually. The work involved in fixing up the results of this sort of copy is significant -do not do it!

ditto

ditto is a command line tool in MacOS X that allows you to copy files and folders while preserving extended attributes, ACLs and posix permissions.

If you use ditto in a terminal, you should get a better result. You would create a new user on the destination machine first, then in the terminal:

$ sudo rm -Rf /Users/<newuser>
$ sudo ditto --rsrc /Volumes/<source HD>/Users/<olduser> /Users/<newuser>
$ sudo chown -R <newuser>:staff /Users/<newuser>

This should ensure the posix permissions and ACLs remain sensible, and can be used as a way of changing the login name associated with a user as you move them between Macs.

This approach will not do as good a job as the Migration Assistant, as it does not deal with ByHost entries, etc. However it provides a way of doing certain sorts of surgery that becomes necessary over time.

ditto + disk image

If it is not possible to connect the two Macs, you can use this style of transfer in conjunction with disk images. The pedantic approach to this would involve creating a stretchy, compressed, MacOS Extended format disk image, mounting this on the source machine, then ditto-ing the folder structures you want to the disk image

$ sudo ditto --rsrc /Users/<olduser> /Volumes/<diskimage>/<path to>/<olduser>

Closing the disk image, and moving the file across the network, onto an external drive, whatever. On the destination machine, create the new user account, mount the disk image then use the ditto approach described earlier.

Weird sizes

The same source profile from the same machine was used in the real world examples. Each of the processes copied a different amount of information!

  • target mode via the migration assistant: 8.61GB
  • drag and drop from the source to the destination: 9.93GB
  • network copy between two machines running the migration assistant: 8.93GB

When the process was repeated, each reported the same value as before, so this variation has something to do with the method involved. The first thunderbolt-thunderbolt run was done with NOD32 actively scanning the destination machine, this added 3 minutes (~25%) to the time taken. If you use the network approach, check that real time file system protection is switched off on both Macs.

Skip to toolbar