0

I need to migrate to a newer MacBook soon, because my current one is falling apart. But I have a lot of lower level stuff installed / configured such as Homebrew formulae and casks.

I also have configured defaults in Terminal like defaults write com.apple.finder CreateDesktop false. I've also deleted my normal Downloads folder and replaced it with a symlink to a Downloads folder on my iCloud drive. And I'm using mackup to replace most of my apps' configuration files with symlinks to my iCloud drive as well.

So you know, a bunch of low level stuff and uncommon customizations. Will Apple's default tools be thorough enough to include those as well? Like Migration Assistant or Time Machine?

If not, what are they likely to miss? I don't mind having to redo some things manually, I'm just worried that I won't know exactly what Migration Assistant (for example) missed and that a few months later I'll be scratching my head about why something isn't working the way I was expecting.

If there's another tool that you'd recommend then I'm very interested.

2
  • 1
    Time Machine will provide a good backup of everything relevant. It has exceptions for caches which are rebuilt when required after a system restore. Just use that and regularly check what you are concerned for is present. Be wary of symlinking folders and config files into iCloud Drive. iCloud ignores some file types by design (some hidden files and symlinks as well IIRC) as it is primarily designed for mirroring documents, not 'low level' stuff. Above all iCloud Drive is NOT a backup solution. Unsure of the actual details hence posting this as a comment. Jan 20 at 10:03
  • 1
    If changing from Intel Mac to Apple silicon. You will need to redo all of homebrew. Otherwise homebrew will restore just fine from TM.
    – Gilby
    Jan 20 at 22:52

2 Answers 2

6

Stick with Time Machine...

I need to migrate to a newer MacBook soon, because my current one is falling apart.

You never mentioned what vintage your Mac you currently have is nor which Mac you'll upgrade to. However, it's not all that important as this is where Time Machine shines; especially in this transitional era going from Intel processors to Apple silicon. Time Machine backs up files and settings; the most important aspects of your system.

I don't recommend making a clone of a drive especially in situations like yours since you will be going from one machine to a completely different one (even if they are in the same model family like MacBook Pro). There is the potential to have a complete image of a drive with a macOS version incompatible with the new hardware - going from an i5 to an M1, for example. When moving from one Mac to another, use Migration Assistant; it can use Time Machine as a migration source.

Instead, use cloning for disaster recovery like going from similar vintage Mac computers or when you need to do a complete restore because your last experiment on the boot sector failed spectacularly.

How to see what Time Machine Backs Up....

Time Machine backs up both your system drive, the data drive (where you can write), and even the Recovery partition. To see what is backed up, simply browse the mounted TM volume and look for the .../Latest/ folder. You can obtain it with the tmutil command:

% tmutil latestbackup

/Volumes/My Time Machine Drive/Backups.backupdb/my-mac/Latest

Listing that directory's contents reveals...

% ls /Volumes/My Time Machine Drive/Backups.backupdb/my-mac/Latest

drwxr-xr-x@ 14 root  admin   476B Jun 26  2021 Macintosh HD
drwxr-xr-x@ 16 root  wheel   544B Jun 26  2021 Macintosh HD - Data
drwxr-xr-x@  4 root  wheel   136B Jun 26  2021 Recovery

Above is just a sampling. Traverse the folders to see what's included with the current TM backup.

The Low Level Stuff...

So you know, a bunch of low level stuff and uncommon customizations. Will Apple's default tools be thorough enough to include those as well?

The most accurate answer is it depends.. If a file like a .plist for example is included in what is backed up, then yes, it will. If it's a system file, it's also likely to get overwritten when you get the new OS. It's also possible that the particular setting you wrote is deprecated and whatever you backed up will not be applied even though the file was restored.

Keep an Inventory of Your Customizations...

I make extensive changes to my system. I don't use Homebrew and instead opt for MacPorts - but the concept is the same.

  • Make copies of critical files you edit. For instance I have a folder that I ensure gets backed up of my .bash_profile or .zprofile as well as my ssh-keys and config files.

  • Get an inventory of your installed applications in Homebrew or in MacPorts

  • As you make tweaks to your system (i.e. defaults write com.apple.finder CreateDesktop false) you will know what it is and what you did. The best part is you can script it in a Bash/Zsh script for the next time you do a fresh install. Here's a sample snippit:

    ...
    echo "Writing my Finder Desktop Tweaks..."
    defaults write com.apple.finder CreateDesktop false
    sleep 1    # 1 second pause to allow you to read the output
    echo "Writing my next tweak...."
    defaults write com.apple.turbo.hamster.enable true
    ...
    

    You could easily run that script to make your changes on a new system. The advantage this has is that you have in essence a "paper trail" of what you did so you can replicate it or trace down an error/failure.

  • Advanced. I make copies of my /etc/ssh directory including the system identity files so if I am reinstalling and OS, I can overwrite the system defaults so that all of my devices don't have to "remember" the security keys when authenticating via SSH.

What Should You Buy?

Nothing, unless you absolutely need it.

Why?

Backup/Recovery is more of a process and strategy than a product you purchase. Everything you really need is already included with your Mac. With a little diligence, you can know and install everything you added with Homebrew.

Besides, I highly recommend re-installing your Homebrew formulae because what you compiled on your older Core i3/i5/i7 (dare I say Core2Duo) and the new M1/M2 you just acquired is likely to be incompatible. You'll need to recompile it for the new processor. This is where having that inventory will come in handy. Plus, you have the added benefit of auditing what you've installed - you might find that Nyancat you installed as a goof really isn't needed anymore.

5
  • 1
    I can never remember what I have installed with home-brew so I put in a cronjob to nightly save it for easy restoral: chronic brew list -1 > /Users/user/Documents/Developer/Projects/Dotfiles/brew.list
    – Alex
    Jan 20 at 16:07
  • Good overview but what's the format of the backup disk you have brought the examples from? From what I've read and experienced, AFPS is the preferred disk format by Time Machine (TM) since macOS Big Sur and when the backup disk is AFPS-formatted, TM does not create a Backups.backupdb directory. Then, the object revealed bytmutil latestbackup is different than in your example above and can't be seen inside using ls. For those using an AFPS-formatted backup disk, I think this answer better explains how things are organized by TM.
    – Alper
    Jan 21 at 1:58
  • @Alper, refer to the statement directly following the example, Above is just a sampling. The question isn’t about how TM organizes files.
    – Allan
    Jan 21 at 12:26
  • So, I actually don't have a super old macbook. I have the M1 MacBook Air. I said it was falling apart because I literally dropped it and now the screen is barely hanging on. But thanks for all the other info, I think you've covered basically all of it.
    – Evert
    Feb 3 at 20:10
  • I hope it helped. I try to pass this info on because most folks (including myself) treated this as buying car insurance after an accident. If you take thse steps, youkve got much less to worry about.
    – Allan
    Feb 4 at 15:48
1

If you're unsure about all the customisations you've made and want to preserve as much as possible, I would use SuperDuper to clone the drive to the new MacBook (via starting the new MacBook in Target Mode or using a USB Disk), then do an in-place upgrade of the operating system in the usual way. Time Machine will probably do the job as well, but SuperDuper ensures a block-perfect copy of the relevant partitions.

Of course you'll still need to check your customisations are actually compatible with the new version of macOS, but this will give the best chance of preserving as much as possible. If you're really keen to avoid this in the future, you could also write a catalog of your customisations into an automated deployment tool such as MDS as scripts or packages, so you could replicate your environment onto a fresh OS install at the click of a button. That's the "hardcore" option though!

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .