Quote:
anyway cat /dev/zero > /dev/hdb can't be done, it tells me that /dev/hdb is read only

As I said above, don't do hdb.

There is a finite number of spare blocks available on the drive to remap bad blocks. If your drive is really badly broken then you'll have to replace it.