Mac – How to mount external volume on /Users

external-diskmounttime-machine

I have been trying to migrate from an old Mac Pro with big internal disk to a new iMac with (small) internal SSD and big external Thunderbolt disk for a while and found no direct answer. I have a time machine backup on an external disk. My preferred solution would be to mount the external disk on /Users. Apple support (whom I chatted with) does not have an answer. How to go about this?

Best Answer

Documenting my own solution here, but would be happy to hear whether others have tried this in different ways. There are just a few steps to consider.

  1. Create a dummy user with admin permissions with home directory on the built-in /Users disk

  2. Name your external volume to something, e.g. Home - it would normally then be mounted on /Volumes/Home

  3. Find the Volume UUID for your external disk using diskutil list /Volumes/Home, let's say the UUID is XYZ

  4. Now comes the magic, use the sudo vifs command to add a line to your (by default empty) fstab file, the line should look like this:

    UUID=XYZ /Users hfs rw 0 2
    

Finally, reboot your machine and you are good to go.

Caveat 1: if your external disk is missing or broken you will not have home directories, so do make a backup!

Caveat 2: if your external disk is missing and you do not have a dummy user (step 1 above) you will not be able to log in at all.

After this you may want to restore a time machine backup. However, Migration Assistant tries to outsmart you and checks the amount of available space for the root directory (which is small) rather than the externally mounted /Users directory. To circumvent this you have to use a two-step process:

  1. Restore user details (accounts) but not their data by de-selecting all the data directories when restoring using Migration Assistant, after doing this you will have re-created users without most of their data files.

  2. Using the command line tool tmutil you can restore without the check:

tmutil restore /Volumes/Backup/Backups.backupdb/PreviousMachine/PreviousDisk/Users/{joe,anne} /Users

(please run man tmutil before trying this and use the correct directory names).