Personally if you have a large enough separate drive and enough patience. I would do a bit level copy which if successful is guaranteed to put the disk back exactly.
#/bin/dd bs=32k if=/dev/sd? | /usr/bin/gzip > /media/usb0/hpBACKUP.dd.gz
Restore with
#/bin/cat /media/usb0/hpBACKUP.dd.gz | /usr/bin/gunzip | /bin/dd bs=32k of=/dev/sd?
You could also use ntfsclone which is part of the ntfsprogs package to get an image of the windows partition just after resizing the partitions. ntfsclone -s -o sda1.img /dev/sda1 Now provided that the partition table entry does not change position or size you can restore it to its original state with ntfsclone -r -O /dev/sda1 sda1.img The main benefit of this method is that ntfsclone understands empty space in the partition and the resulting image is only marginally larger than the actual data stored in the partition. For example an ntfs partition with size 100GB having 20GB of data and the rest being empty space could be backed up to a 20GB image file. George Nikolopoulos