i'm trying to backup my windows NTFS partition using a knoppix disk, a secondary hard drive and the dd command. i've been using this command: "dd if=/dev/hda | gzip > /mnt/hdb1/hda1bak.img.gz", which i've seen on a tutorial, http://wiki.linuxquestions.org/wiki/Dd. i have a few questions/problems that i'm hoping you guys could help me with:

1. i've seen several examples and they seem to change the bs to 512, 1024, etc. without saying why. do i need to change the bs depending on the drive i'm grabbing? for example if my NTFS drive was formatted with 1024 cluster sizes, would i have to set the bs to 1024 or something?

2. also, some descriptions have said the bs was the number of bytes read at a time and other say the number of blocks read at at time, which is it?

3. why does dd take so long? i did a zero-fill on my 160 gig hard drive with this command "dd if=/dev/zero of=/dev/hda bs=1M" and it took eleven hours to finish. also, when i try to grab an image of my NTFS partition(only 40 gigs), it takes like 5 hours.

4. i tried to increase the bs size so that it might go faster. i incresed it from the default to 3M, so the command i ran was "dd if=/dev/hda1 bs=3M | gzip > /mnt/hdb1/hda1bak.img.gz". this took a very long time to finish running and when it finished it gave me an error about the filesize being too large. can anybody tell me what i should be setting the bs to for grabbing my 40 gig windows partition and about how long it should take? i'm no expert, but i dont think it shouldnt be taking this long.