Load a linux LiveCD (I use Linux Mint 9 because it's a stable long term release).
Open the terminal from the menu.
sudo apt-get install fsarchiver
If you need to partition the hard drive using gparted
Backup the MBR:
dd if=/dev/sda of=/[locationofmbrfile]/backup.mbr bs=512 count=1
/dev/sda refers to the first hard disk, the rest just copies the first 512 bytes (containing the mbr) to a file.
Back up the filesystem:
fsarchiver savefs /[locationtosavebackup]/backup.fsa /dev/sda1
This backs up the first partition on the first hard drive to a file called backup.fsa. If you're trying to backup to an external hard drive, you Mint should auto-mount it under the /media folder. So the path to the external hard drive would be something like /media/[harddrivename]/backup.fsa
For the rest of the steps we'll assume that the new hard drive is also attached to the system. Check to see what device the second hard drive is assigned to using gparted (ex sda, sdb, sdc, etc...). We'll assume that it's the second hard disk attached or sdb.
Copy the MBR over:
dd if=/[locationofmbrfile]/backup.mbr of=/dev/sdb bs=512 count=1
Copy the partition over:
fsarchiver restfs /[locationtosavebackup]/backup.fsa id=0,dest=/dev/sdb1
This is pretty much the reverse of the backup steps except the device changed to sdb because the changes are being applied to the second hard disk.
If you're not afraid of the command line, doing backups using linux is a cakewalk. The advantage of using fsarchiver is, it does file-based backups instead of data block backups like clonezilla or partimage. That means that it's possible do a restore on a partition that is smaller than the one that was originally backed up (as long as the data size doesn't exceed the size). That essentially
If you want a GUI-only solution:
- load the LiveCD
- open the terminal
- sudo gparted
- copy the drive you want to copy
- paste it onto another drive
- hit apply
This is essentially the linux equivalent to the DriveXML mentioned in one of the other answers except it can be run from a cd (ie doesn't require a working system).
Note: If the destination drive is smaller than the source drive you may not be able to do the copy.