I use the Ubuntu discs in trial mode (where it boots into a useable OS that just works without touching your hard drive). It has no problems reading various partition types, file systems, or working with AHCI. Most network interfaces are supported without doing anything more so if you have a network location you'd like to backup to, this is one way to do it. From Ubuntu, I just use the terminal to do my imaging.
Backup and Compress: dd if=the_device_you_want_to_backup bs=blocksize_in_bytes conv=noerror | gzip -c -9 > path_and_filename
Document the Device Metrics: fdisk -l the_device_you_want_to_backup > path_and_filename
Decompress and Restore: gunzip -c path_and_filename | dd of=the_device_you_want_to_restore_to conv=noerror
If you have an uncompressed image, you can even mount it for viewing or for reading and writing. The options depend on how you backed it up, but you can mount partitions from within an entire drive image or individual partition images (if you backed up each partition into its own file).
The device to backup is typically /dev/sda (the entire contents of the first physical hard drive), or /dev/sda1 (the first partition on the first physical hard drive). If you're backing up to external media like a USB drive or a SDHC card, the path to the media is usually /media/volume_name/. bzip2, pigz (parallel GZip implementation), pbzip2 (parallel BZip2 implementation), lzop (extremely fast compression and decompression), and xz (LZMA compression) are all drop-in replacements for GZip; adjust the arguments accordingly. I'm a Linux terminal newbie, so please check the commands carefully before applying. The DD tool has been jokingly referred to as "disk destroyer." (Hint: if ≠ of) I hope this helps. :) By the way, did you really want to restrict your options to DOS tools?
My GUID: ca2262a7-0026-4830-a0b3-fe5d66c4eb1d :) Now I can Google this value and find all my Code Project posts!