[Off Topic] TB3 data transfer from 2016 MBP and 2018 MBP

jwojda
Valued Contributor II

I've got a 13" and 15" 2018 MBP in, and I was testing data transfers from a 2016 to a 2018 via my belkin TB3 cable that I've been using since the TB3 Macs came out.

I target boot the 2016 mbp and plug in the cable to the 2018 that's signed in with the user's account and I go to the target booted machines HD, go to the /Users/user'sID and proceed to copy the contents of each folder (Desktop, Documents, Downloads, etc) to their respective folders on the 2018 machine.

What I'm noticing is that the copy is taking hours and hours to copy, even though the estimated time is minutes.

I can copy the same data from the 2016 mbp via TB2 to an older laptop and it's minutes to copy.

Nothing is pegging the CPU (AV is at 0.0% cpu time throughout the copy). I've even disabled McAfee (Turned off Threat Prevention) to see if it's the culprit and there's no noticeable change in speed/performance.

I've also tried copying via Pathfinder.app and that didn't make a difference either.

5 REPLIES 5

gskibum
Contributor III

I stopped target disk mode booting with Thunderbolt 2 two-three years ago because it was so inconsistent. A number of times I ran into terribly slow transfers.

I got tired of wasting the time, only to often have to resort to using ethernet transfers.

Not surprised Apple still hasn't worked this out.

Chris_Hafner
Valued Contributor II

I do anything to keep from using full TB2 cables. In the past, I simply used FW800 cables with a TB2 adaptor and that used to work great. We use these for user director transfers at the helpdesk. I'm wondering how it will go this year for us, as the mix will be Modern MacBook Pros and MacBook Air units.

donmontalvo
Esteemed Contributor III

Data transfer over a decent network is our choice too. We use rsync 3.0.6 (not crappy old 2.x version Apple bundles with macOS), and a script on the OLD computer...ssh over from the NEW computer and invoke it, answer a few questions, and get home on time.

Start by deploying a version of rsync that sucks less...

Updating rsync from 2.x to 3.x (because GNU v3 blows chunks
https://www.jamf.com/jamf-nation/discussions/28538/updating-rsync-from-2-x-to-3-x-because-gnu-v3-blo...

Then use a script like this...

#!/bin/sh

dateStamp=$( date '+%Y%m%d_%H%M%Z' )
computerName=$( scutil --get ComputerName )
logFolder=/Library/COMPANY/Logs

# Make log folder
mkdir -p ${logFolder}
chown root:admin ${logFolder}
chmod 755 ${logFolder}

# Purge all but 3 newest log files
logFiles=$( ls -l ${logFolder} | grep rsyncTransfer )
if [[ ${logFiles} == "" ]]; then
    /bin/ls -dt ${logFolder}/* | tail -n +3 | xargs rm -rf
fi

echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++"
# Identify computer shell is on
echo "$dateStamp: Your Terminal is currently on $computerName."
# Prompt for IP Address of NEW computer
echo "$dateStamp: Enter IP Address of the NEW computer."
read ipAddress

# Prompt for user's user name
echo "$dateStamp: Enter the user's LDAP name."
read userName

# Prompt for Local Admin username
echo "$dateStamp: Enter your admin credentials."
read adminName

# Begin rsync process
caffeinate -i /Library/COMPANY/Applications/rsync/bin/rsync --rsync-path=/Library/COMPANY/Applications/rsync/bin/rsync --log-file=${logFolder}/rsyncTransfer_${dateStamp}.log --exclude '.Trash' --exclude '.DS_Store' --exclude 'Library/Caches' --exclude 'Library/Keychains' --exclude 'Library/Saved Application State' --exclude 'Box Documents' --exclude 'Box Sync' --archive --verbose --acls --xattrs  --delete --progress --recursive --human-readable -e ssh /Users/${userName} ${adminName}@${ipAddress}:/Users/Shared/

echo "The rsync process is complete."
echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++"

exit 0

Once rsync is done, move the home directory you copied over from /Users/Shared/username to /Users/username, then recursively set the owner to the username. User logs in and everything is as it was, except you'll need to enable the user for FileVault 2 (if its a laptop and your security mandates say so).

We worked with Apple on this, and due to security issues with (trying to) rsync a home directory from /Users/ on OLD to /Users/ on NEW, so they recommended rsyncing to /Users/Shared/ and then moving it after rsyncing it.

Note the same ssh account will need to be used if you choose to run the rsync script again (of course only move the home directory once you're done rsyncing).

Don

--
https://donmontalvo.com

nwagner
Contributor

@donmontalvo
You said you worked with Apple on this data migration issue. Did Apple say to not use Migration assistant?

I'm strongly leaning towards your process for migrating data, but we have some big hurdles:
- Our environment is not homogeneous. We have everything from 2012 MacBook Air's, to 2013 MacPro's, to the newest MacBook Pro's
- The OS's we are migrating from can be as old as 10.10 (don't ask), but its really all over the place, 10.12 is a large portion of our inventory.

Our plan/process:
- We are basically doing 1 to 1 swaps, cause in place upgrades just aren't going to work for us.
- We get "spare" hardware up to 10.14.5 then work with the user to get their data ported over.
- Currently, we are using migration assistant for migrating user data.
- The high estimate for this process is 3 hours, but some users could take 30 mins.

I'm thinking that this kinda of time investment is not acceptable, but I'm over ruled.

How can I convince the power's that be, to go the route of rsync?

donmontalvo
Esteemed Contributor III

@nwagner Apple didn't tell us not to use Migration Assistant, we told them its not an option.

Migration Assistant disables the user, can't use the computer while its running.

rsync does a fantastic job, if the right version is installed on both computers, if the right options are used, and if the computer is on wired connection...extremely fast and intelligent, and by caffeinating the rsync process, prevents any kind of sleep.

We had a call with Apple asking for Migration Assistant to be updated to support enterprise, they don't think its going to happen.

POC is the way to convince people. ;)

--
https://donmontalvo.com