Copying root partition and /home to a new larger hard drive

view story

http://askubuntu.com – I am getting a larger hard drive and would like to copy root directory to it. The partition for root is 20G. I would like to make it larger on the new drive. I also would like to copy /home to a larger partition on the new drive. Could I use dd to copy the partition or is there a better way to copy the partition? Should I format the new drive before copying the partition? What else will I need to do beside sudo update-grub to show I will be using the new drive? I know it subjective but I've found 20G a little low for a root partition if you add a lot of programs. Would 40G be large enoug (HowTos)