How to mount external volume on /Users
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.


Create a dummy user with admin permissions with home directory on the built-in /Users disk
Name your external volume to something, e.g. Home - it would normally then be mounted on /Volumes/Home
Find the Volume UUID for your external disk using diskutil list /Volumes/Home, let's say the UUID is XYZ
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:


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.
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).