Você deve tentar usar o ddrecover em vez do dd. Ele será capaz de ler setores defeituosos passados, onde dd apenas pararia e abortaria.
dd-recover /dev/devce_name /path/to/drive/image
Demorará um pouco, mas poderá recuperar a maioria dos dados. Você pode usar um live-cd do Linux para fazer isso. Se estiver usando o Ubuntu, você precisará instalar o pacote 'ddrescue' uma vez iniciado. Eu fiz isso sozinho recentemente. Depois de recuperar a imagem, você pode usar o dd para colocá-lo de volta em uma nova unidade e usar o chkdsk para corrigir qualquer problema na imagem.