Clone hard drive to another, smaller hard drive [duplicate]

Is there a good tool/program that allows me to clone a system drive to another, smaller hard drive?

I've bought a new 64GB SSD drive and would like to move my current Windows 7 Professional 64-bit installation to that new drive. My current drive is a 200GB SATA drive with one partition only. Of course there's enough free space to shrink my current partition to less than 64GB.


Solution 1:

You can even use a linux-live-disk to copy that partition with dd. You have to shrink that partition first.

Edit:
You should first defrag your HDD under Windows 7. Then you could try to shrink your partition to less than 64GB (You have to try, Windows sometimes doesn't allow you to shrink your harddrive extremely even though there's enough space free). To do this, you have to right-click your computer, choose manage and click on storage-management (or similar, I haven't got an english Win-7 here...). Then you have to right-click your partition and choose downsize (or similar... see above).

If that doesn't work, you could try ntfsresize with a Linux-live-cd. Backup your data first!

If any of the two resize-steps completed successfully, you could copy your partition with dd.

Hint: Try to make your partition as small as possible. The smaller your partition is, the faster your dd gets.

Edit2:
As mentioned in other answers, GParted is also a good way to do resizing. It's contained in any Ubuntu-Live-CD. You could run GParted to shrink your partition and then dd your partition to your new SSD in the same live-cd-session. GParted uses ntfsresize in the background.

Solution 2:

Clonezilla works great for me.

Solution 3:

Ghost is a very good one if you just want a clone. Acronis True Image is one that I use personally.