Setting up /home on a separate partition is beneficial because your settings, files, and desktop will be maintained if you upgrade/reinstall/use a different distro. This works because /home has a subfolder for each user's settings and files. Also, fresh installs for linux typically like to wipe whatever partition they are being installed to, hence the need to put /home on a different partition.
Setup Partitions
This is beyond the scope of this page. Try here if you need help. Memorize or write down the location of the partition, something like /sda3 or /hda3. Its been suggested to use either ext2 or ext3 over vfat. Using vfat is not supported and may fail, since vfat does not support permissions.
Setup Fstab
Use your favorite editor to edit fstab, like: gksu gedit /etc/fstab
Add a line for your partition; something like the following line:
UUID=???????? /media/home ext3 nodev,nosuid 0 2 # (identifier) (location ) (format) ( some settings )
You should replace the ?'s with the UUID of the intended /home partition, and the location should be a temporary one (/media/home is assumed in the rest of the guide). If /media/home does not exist yet, then you may create it with the command
sudo mkdir /media/home
The UUID can be found with:
blkid
Now, mount the partition with:
sudo mount -a
Check that you can copy files over, at least as root (ie with sudo).
Copy /home to the New Partition
sudo rsync -axS --exclude='/*/.gvfs' /home/. /media/home/.
The --exclude='/*/.gvfs' prevents rsync from complaining about not being able to copy .gvfs, but I believe it optional. Even if rsync complains, it will copy everything else anyway. (See here for discussion on this)
Make the Switch
Here is the point of no return. If the previous two steps worked, you should have no troubles.
Rename your /home directory:
sudo mv /home /old_home
Re-create a /home directory with (this is because the next steps need the location to already exist):
sudo mkdir /home
Edit fstab so that your new home partition actually points to /home (ie. by changing /media/home to /home)
and finally, remount the partition with:
sudo mount -a
Reboot to ensure that currently running programs use the new /home
After a reboot
If everything is working, great, you can delete /old_home. If things aren't working, you can undo by moving your /old_home back to /home, and delete the line you added to fstab.
Technical Notes and Resources
Rsync was chosen over cp and find|cpio because it seemed to maintain permissions.
http://ubuntu.wordpress.com/2006/01/29/move-home-to-its-own-partition/