However if you have perl installed the directory structure is to long for xcopy to handle and it will fail.

Well with perl installed it does complicate things a LOT. Here is how I did it the last time :

Create a DOS bootable drive

Make a directory on it called “router” and copy all of the base directory files to that drive, including the –linux-.— file in both the root directory and the router directory.

copy c:\*.* d:\
mkdir d:\router
copy c:\router\*.* d:\router\

Then boot FREESCO and make a directory in the root directory structure called “backup” and mount the second drive with something like

mkdir /backup
mount -t umsdos /dev/hdb1 /backup

Then copy all of the files from the hard drive with

cp-rf /mnt/bootdev/router /backup/router

You will note that there is no space in “cp-rf” as in reality it is a shell script for copying files and directories. Once this is complete you should have a duplicate hard drive and it can be un mounted with

sync
sync
umount /backup

I will also give you the easiest way to do this which is to place both drives in a Windows machine and just drag all of the files from one drive to the other.

I boot my FREESCO with a win9x bootdisk,
once booted I put the PQDI flop in and run the prog.
The only drawback is that this prog makes a complete image of the complete drive (or partition) you want to backup.
And when you want to put back the backup, it will completely restore the complete drive (or partition) as it was when you backed it up.

Personally, I prefer freeware to do that, and Partimage ( http://www.partimage.org ) fits perfectly in my needs. You can use it stand alone (booting from floppies or CD) or booting from a knoppix CD, which is what I use.
One of the biggest advantages is that you can backup/restore all your data to another PC in the network! (=no need to 2nd HDD, CD-RW, etc…)
Anyway, I miss some tool to do online backups, i.e. to be able to backup data without having to put offline your router.