To use Migration Assistant or not to use Migration Assistant
You've got a new Mac. The box is open, the screen is pristine, and you're staring at the setup screen, wondering: Should I use Migration Assistant?
Whether to use Migration Assistant is a constant debate on Mac communities. Before I answer whether you should use it, we need to take a peek under macOS's hood.
The APFS Architecture: Why Your System Stays Safe
Modern Macs use APFS (Apple File System), which creates a container structure with multiple volumes. I highly recommend for an in-depth breakdown , and it has downstream reprocussions for Migration Assistant.
The /System volume is a read-only sub-partition that's sealed and cryptographically hashed. Your macOS installation files are signed, and the system volume cannot be modified by Migration Assistant, or by anything else, for that matter, outside of Apple-distributed updates. Even if Migration Assistant wanted to alter your OS, System Integrity Protection (SIP) prevents it. Even if SIP is disabled, and system file are modified, updating macOS will replace any modified files with the Apple-hashed versions.
The operating system you get on your new Mac stays exactly as Apple installed it. Migration Assistant can't touch it, and that's a feature, not a limitation.
For the nerds out there, in older versions of macOS (Dating back to OS X),to bring more recent versions of OS X/macOS to older hardware or Hackintoshes, people would build scripts. Popular ones in include Pike's Script and DosDUDE1's scripts. However, due to Apple's shifting focus towards a non-modifiable core operating system, scripts became an impediment, as any update would render the computer unbootable by replacing key modified system files with non-modified versions. As this avenue became more precarious, the strategy shifted to bootloaders like Clover and later OpenCore. Prior to booting macOS, the bootloader would launch and perform active memory modifications, load in kernel extensions (Kexts) to bring driver support for unsupported hardware, bypass the Don't steal macOS protection, among other things. This had the benefit of never modifying physical files in macOS, only altering or replacing them in active memory.
In short, it's safe to use Migration Assistant on Macs running OpenCore as none of the modifications are transferrable as they only exist on the EFI partition, something that Migration Assistant is unaware of, and does not exist on Apple Silicon Mcas/
What Migration Assistant Actually Moves
So what does Migration Assistant actually transfer? Here's the complete list:
- User Home folders: Everything in
~/, including documents, desktop, downloads, and all your personal files - ~/Library: User-level settings, preferences, application support files, caches, and all the hidden configuration that makes your Mac feel like your Mac
- /Library: System-wide support files, preferences, and application data (non-system files)
- /Applications: Third-party applications (Apple's system apps are already on the new Mac, so they don't get migrated)
- Documents and user data: All user-created content across your home directories, anything that exists in ~/
- Root-level user-created folders.
Migration Assistant also identifies incompatible files during the process. Intel-only apps on Apple Silicon Macs will be flagged, though they may still run via Rosetta. Apple will likely flag them as incompatible in future macOS versions, but for now, they'll transfer and you'll get a heads-up about potential issues.
What Migration Assistant Doesn't Do: The Housekeeping Problem
Here's where things get interesting: Migration Assistant is not a janitorial service. It's a wholesale transfer tool. Everything moves over, including years of digital clutter, old preferences, cached data, and files you probably forgot existed.
You're still on the hook for cleanup in these areas:
- /Library: System-level caches, old preference files, duplicate support files from applications you've long since deleted
- ~/Library: User caches, old application preferences, obsolete support files, and remnants from apps you uninstalled years ago
- /usr: Third-party binaries and libraries that may no longer be needed or compatible
- Invisible files in ~/: Dotfiles like
.bashrc,.zshrc,.gitconfig, and other hidden configuration files that accumulate over time
The burden of decluttering falls on you. Migration Assistant preserves your data, not your good decisions. Years of accumulated files, old preferences, and cached data come along for the ride, and you'll need to clean house afterward if you want a truly optimized Mac. Tools like Onyx can assist in dumping caches for orphaned utilities.
When Migration Assistant Works Best
Migration Assistant works best under certain conditions:
- Migrating during initial setup: Running Migration Assistant at first boot is ideal, though you can also run it later from
/Applications/Utilities/Migration Assistant.app - Update macOS first: It's recommended to update macOS on the new Mac before migrating, though it's not strictly required to match versions between the two Macs
- Clean source Mac: A source Mac with no disk errors or corrupted files will migrate more reliably. Boot into recovery mode and run the disk utility.
- Reasonable file count: Hundreds of thousands of files to even millions is fine, but many millions may cause the process to struggle. Doing a bit of house cleaning is a wise move.
When to Reconsider Using It
Migration Assistant isn't always the right choice:
- Years of accumulated cruft: If your old Mac has become a digital hoarder's paradise, you might want a fresh start with selective migration instead
- Selective control: When you want to cherry-pick what comes over rather than transferring everything wholesale
- When your new Mac's volume is smaller than the source drive.
One thing that's not a blocker: architecture differences. Intel apps still run via Rosetta on Apple Silicon Macs, and Apple will flag incompatible apps in future versions. Migration Assistant handles this gracefully by flagging potential issues rather than blocking the migration.
Practical Tips for Success
If you decide to use Migration Assistant, here's how to set yourself up for success:
Before Migrating
- Update macOS on the new Mac first and the old Mac (recommended)
- Disable antivirus, firewall, and VPN software temporarily during the transfer
- Ensure both Macs are on the same network and have Wi-Fi enabled
- Have a Time Machine backup as a safety net.
During Migration
- Keep both Macs on the same network
- Close all applications on both Macs
- Be patient, large migrations can take hours
After Migrating
- Plan time for cleanup of
/Library,~/Library,/usr, and hidden files - Check for flagged incompatible files and decide what to do with them
- Test your applications to ensure everything works as expected
Alternatives
Migration Assistant isn't your only option:
- Time Machine restoration: You can use a Time Machine backup as the source for Migration Assistant, which gives you more control over timing.
- Selective manual transfer: Fresh install plus cherry-picking what you need gives you the cleanest start
- Third-party cloning tools: Tools like Carbon Copy Cloner or SuperDuper can create complete duplicates, though they come with the same housekeeping challenges
Wait, you didn't tell me if I should use Migration Assistant!
I'd argue that for most users, most of the time, you should use Migration Assistant. It's a transfer tool, but the rest of the data is your responsibility to manage. It isn't a cleaning tool, thus years of digital baggage will be along for the ride.
For more technical deep-dives on macOS migration, check out The Eclectic Light Company's excellent article on the subject, or Apple's official Migration Assistant guide.
For a tutorial on how to tame your System Data, check out my guide Reclaiming storage/space from 'System Data' in macOS: A tutorial on understanding the System Data usage.