I have two hard drives in my computer: one with the / partition and the swap partition, and another with the /home partition.
The hard drive with the /home partition was getting full, so I bought another one.
Here’s what I did to move the /home partition to the new hard drive:
- Replace the old drive for the new one.
- Connect the old drive to another sata port. This way the new drive is in the right place and after moving the /home partition I just have to remove the old drive.
- Boot computer.
- Create a new Extended Partition in the new drive (I used GParted) with a primary partition inside. At this point there is no mount point to this new partition. The new partition in this case is /dev/sdb5.
- Get the UUID for the new partition:
sudo blkid
- It will be something like:
/dev/sdb5: UUID="**aa111aaa-1122-aaaa-9999-cccc44447777**" TYPE="ext4"
- Backup your /etc/fstab file:
sudo cp /etc/fstab/etc/fstab.$(date +%Y-%m-%d)
- Create a new folder to mount the new partition:
sudo mkdir /media/home
- Edit you /etc/fstab file in order to mount the new partition in the new folder:
gksu gedit /etc/fstab
- Add the following, using your UUID
UUID=**aa111aaa-1122-aaaa-9999-cccc44447777** /media/home ext4 nodev,nosuid 0 2
- Mount the new partition:
sudo mount -a
- Copy your /home partition to the new /media/home partition. At this point I disconnected the computer from my LAN so nothing changes:
sudo rsync -axS --exclude='/*/.gvfs' /home/. /media/home/.
- Compare the two partitions:
sudo diff -r /home /media/home > ~/diff.txt
- Analyze the differences to see if you have to copy something else:
gedit ~/diff.txt
- Edit you /etc/fstab file again in order to mount the new partition in the /home folder:
UUID=**aa111aaa-1122-aaaa-9999-cccc44447777** /home ext4 nodev,nosuid 0 2
- Move the current /home to a /old_home folder. I had to go to a terminal session in order to do this (Ctrl+Alt+F5 to go to the terminal, Ctrl+Alt+F7 to get back):
cd / && sudo mv /home /old_home && cd / && sudo mkdir -p /home
- Reboot.
- After checking everything is allright, remove the /old_home folder:
cd /
sudo rm -r /old_home
- You can now halt your computer and remove the old hard drive.
More information about this subject, look up Ubuntu Documentation.