1st and foremost backup DATA. I then shrink the partition using gparted from a live cd "as you cant modif a mounted partition"
I then use dd command to copy partition to where ever
sudo dd if=/dev/sdax of=/dev/sdbx
(FYI dd can destroy data if not used correctly to destination
) "x" being the partition
The partition must be the same size or smaller than where you are moving too.
You will then have to edit /etc/fstab acordingly and update grub to point to where root is.
Think that covers it all