Eu tentaria recuperar as partições no linux com o uso do testdisk.
Primeiro inicialize qualquer live linux usb / cd.
Segundo, instale ou faça o download do testdisk para a distribuição do Linux que você escolher.
Terceiro, conecte e monte o HD e execute o testdisk.
Por fim, depois de recuperar as partições, copie os dados para outra unidade e limpe a antiga.
Existem vários tutoriais do testdisk na net, por isso não vou incomodar-me a pesquisar para você.