Moving to a New Mac: What’s Left to Do After Migration?

Yes, but I had a shell script that backs up and sets up the symbolic links for me. It ran every time I logged out. This way, I didn’t have to worry if I missed one of something happened.

The iCloud directory isn’t a known location via the terminal app and shell scripting. You might find it, but there’s no guarantee it’ll be there next release.

I didn’t migrate during Setup Assistant, but I used Migration Assistant later to set up the other users’ accounts and bring their data over. It also transferred the contents of /usr/local, which I would have likely forgotten about (until I tried to use LaTeX).

I had Migration Assistant copy my account too because I didn’t feel like going through ~/Library to copy stuff over. In hindsight, I think I should’ve just done it by hand. I’ve done that in the past, and there’s just not that much stuff that needs to come over. I just worry I’ll forget something. Other than what’s in ~/Library, the only other data to transfer was the music library.

Using Migration Assistant caused a slight complication. It moved the already present data to a deleted user folder, which turned out not to be so simple to delete because of something in ~/Library/VoiceTrigger. To get rid of it, I had to disable System Integrity Protection temporarily.

Using Migration Assistant caused a slight complication. It moved the already present data to a deleted user folder,…

For a long time, I have set up new machines via migration from its predecessor (usually a clone of the predecessor’s boot drive). Normally, I use the version of Migration embedded in Setup Assistant. However, if that fails, or if I want to first get the machine running and then bring over my stuff, I make sure that the adminstrative user I use for the initial setup is NOT one of users that I will migrate. That keeps me from having conflicts when I eventually use Migration Assistant.

1 Like

A post was split to a new topic: Lesser known backup apps that are worth a look

I’m not sure I’ve ever used Migration assistant, mostly because I do clean installs. With development and testing, it’s useful to have a clean slate every so often. I also frequently will install developer/beta or older releases to test something, or even keep an old piece of hardware working (like my Scansnap S510).

For years I had a simple text document where I’d keep track of various things I’d want setup/installed on a new Mac, but I rarely updated when quickly downloading a new tool in the middle of a project. So it was never perfect. Now I use the following steps/tools I use to setup a new macOS install, and some of this will be useful even after using migration assistant. Note much of this is done through the terminal, but it can be automated in a simple script if desired.

  1. Install dotfiles in the home directory. If you don’t know what dotfiles are, you probably don’t have to worry about this. There’s no perfect way to do this, many developers use GitHub, but any cloud storage could be made to work and copy them to where they should be.
  2. Install Xcode, these days that’s through the App Store.
  3. Install homebrew
Install Homebrew from the command line
# Check for Homebrew to be present, install if it's missing
if test ! $(which brew); then
    echo "Installing homebrew..."
    ruby -e "$(curl -fsSL"
  1. Install packages from homebrew Tip: you can list installed packages on an old machine with “brew list”, but that also lists any dependencies required. “brew leaves” returns the packages with no other dependencies, so should be the list of things you choose to install.
Install homebrew packages script
# Update homebrew recipes
brew update


echo "Installing packages..."
brew install ${PACKAGES[@]}
echo "Cleaning up..."
brew cleanup
  1. Install 3rd party apps not from App Store. This used to be a very manual process, but homebrew comes to the rescue here too. homebrew supports pre-compiled apps in what they call “Casks”. Apps such as BBEdit, 1Password, Slack, Sketch, Chrome, Firefox, GraphicsConverter etc are all available. See homebrew-cask — Homebrew Formulae for a full list. The following shell script code will install all the listed apps automatically (my example will seem developer tool heavy, but note there are more “mainstream” apps as well):
Install 3rd party apps via homebrew Casks script

echo "Installing cask apps..."
brew cask install ${CASKS[@]}
  1. Install apps from the Mac App Store. This can be done by looking in the Mac App Store Purchased section under your account. But again it can be automated thanks to a little open source utility and a small amount of prep. GitHub - mas-cli/mas: Mac App Store command line interface
  • Tip: searching through the mas CLI can be hit or miss, but the ID required to download or update a program can be easily found by copying the link from in the store and finding the ID in the URL.
Install apps from Mac App Store script
    497799835   # Xcode
    409203825   # Numbers
    409201541   # Pages
    409183694   # Keynote
    1303222628  # Paprika
    904280696   # Things3
    816042486   # Compare Folders
    640199958   # Apple Developer App
    768053424   # Gapplin
    421879749   # RESTed
    #    425264550   # Black Magic Speed Test
    #    413489665   # Cogs

echo "Installing Mac App Store apps..."
mas install ${APPS[@]}
  1. Update System Preferences Use the CLI defaults to setup preferences for a clean install or a new account to match my preferences. A great references is available here, and a very thorough listing of many settings was created by Mathias Bynens. For example my favorite: disabling “Natural” scrolling can be done with one line:
Update System Preferences from command line
# System Preferences > Trackpad > Scoll & Zoom > Scroll Direction: Natural
defaults write "Apple Global Domain" -bool false
  1. Misc
  • Dock - There’s even a free CLI utility to manage dock icons. So if you don’t like the defaults that Apple puts in the dock, you can quickly remove them and put your own icons where you want them.
  • DNS/Web/etc - usually anything you’ve done on the command line will need to be moved. I use dnsmasq for local web development, so anything like that.

That all sounds like a lot, and that’s where a very simple shell script can come in. I’m lazy, so again I freely admit I stole most of the work for what I use from others on the web. A clearly written one was posted earlier this year here.

By combining the scripts listed above, you can create one script that will do just the steps you want, and quickly get a clean install back to feeling like your own computer. And of course, there’s already people that have written fully controllable scripts to do all of these steps.

Note this won’t move any application preferences, but that’s where Migration Assistant should be very adept, especially as Apple changes application preference locations over the years.

1 Like

Like a couple others here, I’m surprised there’s people who basically have all their docs on iCloud or Dropbox. Like @beatrixwillius I only use those for convenience and perhaps redundancy, never as sole storage location. To me the most important consequence of that is I have to ensure rock solid backups. I use TM, but I never want to rely on just one safety net so I also clone with SD to a set of rotating drives both at work (back when I was still allowed to get on campus without a hazmat suit :wink: ) and at home.

Like @adam I use MA when I switch Macs, usually from an up-to-date clone rather than the old Mac itself. I have a whole list of things I have to go through after this process. Some of it is probably because I’m being overly specific (not to say anal) about how exactly I want my Mac set up, other steps I know from experience are absolutely required because MA won’t preserve everything. I’ve been refining that list over the years as my use and services change. It’s quite long and it can easily take up to a day to work through. To me having everything set up exactly as I want it on my new Mac makes it worthwhile, YMMV of course.

Truthfully, I have this nagging suspicion that I probably would be well off one of these days starting from scratch and manually restoring specific items. I’ve been migrating since almost the dawn of OS X and I bet there’s a bunch of crud in there that should be cleaned out. OTOH I also know that I have all kinds of stuff scattered in various places (some of it I probably wouldn’t even know how to install anymore) and even if I knew what I was looking for, I’m not sure I’d find it and be able to set it up again, that’s especially true for work stuff that stems from the Linux world and I somehow managed to make from source (or rather hack from source) way back when. I simply dread the colossal amount of work it would take to migrate by hand until I reach the point where my new Mac works and feels like my old Mac. And yes, I am very specific about how I set it up. Probably something that would require some professional attention. :wink:

For fun, here’s an excerpt. I tried to remove too specific code/settings that’s meaningless to people who don’t use it.

  • name new mac, rename old mac
  • de-authorize old mac from itunes, authorize on new mac
  • allow booting from external drives
  • enable startup chime
  • add new mac to APExtreme
  • check FileVault on
  • check screensaver and corners
  • install X11
  • install MacTeX/TeXLive
  • re-install Java, check Proceedo
  • check all fonts
  • re-install Office
  • re-install Xcode / dev tools
  • download command line tools
  • check OPA / wine / …
  • check stuff in /sw, /usr/local/…, fink, LaTeX, etc.
  • check homebrew stuff, gcc, wine, OPA, LaTeX, etc.
  • install automake, autoconf
  • re-build entire Tracy3 suite, check f77 and f90 compiles
  • re-install VPN
  • check Photos (PhotoStream?)
  • set up new time machine backups
  • set up printers (or check still there)
  • get new fixed ip from IT, update .ssh/config
1 Like

“I have to admit that I don’t notice much of a performance improvement over the old one”

You’ve probably saved me dollars. Or least I won’t worry about a new iMac for a few years.

I’ve also enjoyed the discussion of migrating methods.

@tidbits22, I can second Adam’s experience going from a 2013 13" MBP (maxed out back then) to the top of the line 2020 13" MBP. While there are more (and faster) cores, better graphics, and benchmarks show a clear 2-fold increase, in everyday use I notice hardly a difference at all. Obviously, the 2013 MBP already had a SSD otherwise I’m quite sure it would have been a very different experience. The upshot for owners of older Mac is that in many cases just swapping in faster storage (if you can) will let you benefit from a significant improvement without spending ~$3k on a brand new Mac.

1 Like

A post was split to a new topic: Recovering from a Mojave downgrade

I wish that Backblaze had worked when I tried to inherit the backup from my old 2012 Mac Mini running High Sierra. But something went very wonky after migrating to a refurb 2018 Mac Mini running Mojave. After days of working with Backblaze tech support (which was very patient and helpful. . .) we finally gave up. I had to reseed everything but it went much faster than I anticipated.

My Backblaze logs were forwarded to some experts on their end but they were never able to figure out what went wrong. Fortunately, I still had Crashplan running along with my local backups. Once I had Backblaze squared away I allowed my Crashplan account to lapse. . . I decided that I didn’t need to continue paying $9.99/month for a Cloud backup backup.

I elected to use the same name for my new Mac as the old and I was concerned that might cause problems. But iCloud adopted the new Mac Mini and there was no duplicate Mac Mini like I had feared there would be.

I agree with most of the Dropbox comments. I use it strictly for syncing certain data between my Mac and my wife’s Mac. Dropbox is not designed to be a Cloud backup. . . That’s what I use Backblaze for. The data lives on my Mac and SuperDuper takes care of cloned volumes on an external SSD and mechanical drive. And even though I have never needed it, Time Machine accesses a partition on an external mechanical drive should I ever want to locate a file that is deleted by mistake.

1 Like

Like others here, I tend to like having a fresh start. So rather than going with a direct migration of my old data, I usually clone my current user folder with SuperDuper, and then gradually start pulling stuff over from my backup as needed. However, this last time - just a few days ago, as it happens - I tried SuperDuper twice, and wound up with an empty user folder - very mysterious! I now suspect it might have been a disk access/permissions thing, but I don’t recall having been prompted for permissions.

Just about everything is back to normal - with the bonus of my 2017 MacBook Pro feeling brand new again. My Plex library did get nuked, though - meaning the poster art for movies and tv shows that I had manually applied, but that’s not a big deal. The media is still safe on a local drive, so allowing it to rebuild itself got me back up and running.

Maybe a smidge off topic although I also enjoyed the amazingly seamless transfer from the old Mac to the new one. Since then however I have been experiencing major interruptions as the Mac shuts down and restarts, I finally took a look on the web this am and find that I am far from alone with this problem.
panic(cpu 1 caller 0xfffffff018dd8cec): x86 CPU CATERR detected
Debugger message: panic

This or a variant of it is the message many users are experiencing and so far nothing from Apple to explain it, has anyone here had the same issue.
Otherwise very happy and the memsahib is also happy with the old one which is blowing her away with it’s speed.

Fantastic Angus so much work involved to make things easy for us, much appreciated.

If you are interested in solving your little mystery, I suggest contacting the developer via the SuperDuper user forum. Dave Nanian monitors the discussions and he quickly responds to queries about SuperDuper. I think that Dave provides the best customer tech support that I have experienced in 25 years using Macs. :smiley: