Usually I'm using partimage to nibble partitions. might be beneficial to look into TCT at porcupine.org. The Coroners Toolkit really is a (perl-based) forensics toolbox, it has some nice tools that can find any "dead" data as well.
dd if=/dev/hda of=/dev/hdb bs=512
* the bs= is for blocksize, so it nibbles per sector.
* add "count=1", set if= to the bootable partition, and of= to mbr.dat to just have the bootsector.
The only problems with dd IIRC, is that the disks need to have the same geometry, and shouldnt have disk activity going on.
Another way might be in using dump on each partition, and restoring tru a pipe to the other disks partitions, but Ive never used that.
To make a bootdisk, there should be mkbootdisk or so. U could also go for a 1 floppy distro like the excellent tomsrtbt, use ure RH cd as rescue cd, or use a fullblown distro like finnix (bootable cd).