My experience is similar to Tetsujin's: I've had good results using Migration Assistant over several upgrades, including most recently from Mojave/Intel→Monterey/M1.
I did some preparation before-hand, which was mainly replacing all my old 32-bit apps with Universal (Intel+ARM) versions where available, or at least 64-bit Intel versions. I found a free app called Go64 which did a great job of identifying 32-bit apps and helping keep track of which ones I hadn't upgraded yet. (The easiest cases were apps with free upgrades available; some cost money; and others haven't been updated and so I needed to find alternatives.) It can also help with upgrading x86-64 to ARM, though I think that won't be critical for a couple more versions.
I ran Migration Assistant as part of the initial new-user set-up on the new machine, but it got stuck at ‘Starting up…’, after scanning and letting me choose which categories to copy, but before actually copying anything. (I tried both over wifi, and by connecting the Time Machine drive directly via USB, but neither worked.) I worked around this by skipping the migration, completing the rest of the initial set-up, getting to the desktop, and then running /Applications/Utilities/Migration Assistant
manually, which worked fine.
I was discovering oddities and omissions for a few weeks after the migration — though I guess I'm a ‘power user’, and most Mac users probably wouldn't hit them. I'll go through some of them here, just in case.
One potential issue is that the root directory /
is no longer writeable on Mojave (not even by root). I learned this the hard way (when some directories I'd put there seemed to disappear in the migration). If you've added any top-level files or folders, I'd suggest moving them into your home directory (probably /Users/<username>
) before migrating.
I had to manually install Rosetta and the command-line tools. (Obviously, only if you're going to use them.)
My user account is not an admin (for security reasons; I have a separate admin account to use when needed), but after migration I couldn't remove admin rights. I eventually did it with sudo dseditgroup -o edit -d <user> -t user admin
.
Obviously you'll need to check over your network/wifi/Bluetooth settings. It remembered most of mine, but forgot my DNS setting, and re-enabled Bluetooth. (It seems to do the same after every update, too.)
Starting a new Terminal window showed the error /etc/zshrc_Apple_Terminal:14: INSIDE_EMACS: parameter not set
. I had to change $INSIDE_EMACS
to ${INSIDE_EMACS-}
in that file. (And then redo that after the first update…)
If you use iStat Menus, make sure you're running the latest version. When I migrated, the current version lost access to most of the MBP's sensors, showing only the SSD temperature. v6.61 fixes that. You may need to give it Full Disk Access in System Preferences too. (In fact, you'll probably need to give quite a few programs Full Disk Access; it doesn't seem to migrate that very well.)
All the programs I'd installed via Homebrew still worked, surprisingly enough. (Rosetta works very well!) However, it stuck to the x64 versions of apps. To use ARM versions, you pretty much need to reinstall Homebrew from scratch: the ARM version uses a completely different location (/opt/homebrew/
instead of /usr/local
). Run brew leaves
before updating to show which packages you need to reinstall, and make sure you update $PATH etc.
If you use the same Time Machine drive, it will probably start a new backup set for the new machine. (This is probably a good thing.)
iTunes has been replaced by Music, which does most of the same things (though IMHO often not as well). It successfully migrated all my tracks and playlists; but it lost the view settings, so you may need to set up your views, columns, &c again. If you use iTunes Volume Control, that still works with Music, though you may need to reinstall it. Podcasts have been separated out to a new Podcasts app, which should remember your subscriptions (though again, I don't think it works as well).
A few command-line programs need different options in Monterey. For example, awk
no longer has a --lint
option, and scp
now needs -T
. And some programs such as emacs
and svn
are no longer included, so if you use those you'll need to get them from Homebrew or similar.
It recognised my USB-to-serial adapter (without needing any driver installed) — though its device name (in /dev
) changed, so I needed to tweak some config for that.
If you have any Perl modules, you might need to reinstall those.
It didn't copy my sudoers file.
If you use at
/batch
, you may need to give /usr/libexec/atrun
Full Disk Access in System Preferences.
For some reason, all my Chrome extensions (uBlock Origin, &c) vanished, and I had to reinstall them.
And even more bizarrely, the Times font vanished! But I managed to find a replacement and installed that.
But almost everything else Just Worked™, and the migration went more smoothly than I feared. Rosetta in particular is very good indeed — running x86 code on ARM totally transparently (except for the very first launch of each app failing). The most time-consuming and painful part was upgrading or replacing all my old 32-bit apps, but as mentioned, I'd been slowly going through all that in the months before the migration.