Meus 2 cents,
Em situacoes extremas assim, uso como recurso:
a) Ter uma particao linux (p.ex 10G) para um boot local e usar ferramentas disponiveis nele para tentar recuperar (obvio, isso so faz sentido ANTES da primeira formatacao - quando ainda estou instalando o sistema, p.ex. um servidor Windows Server novo geralmente crio uma particao para isso).
b) Nao tem particao Linux ? Tentar fazer o boot pelo USB em modo "live" e tentar os passos acima
c) Nada disso funcionou ? Poe um segundo HD com Linux e/ou Windows, e que tenham um virtualizador (p.ex. Virtuabox). De boot por ele, instale uma VM Windows (HD virtual) e coloque o HD fisico principal tambem como um HD virtual via VBoxManage (mas no formato VMDK):
VBoxManage createmedium disk --filename hd-fisico-sda.vmdk --format=VMDK --variant RawDisk --property RawDrive=/dev/sda
Isso vai permitir acessar o HD fisico via VM, emulando como se fosse um HD virtual VMDK (tem de ser VMDK, VDI ou outros formatos as vezes dao dor de cabeca)
Agora de boot pelo Windows Virtual (VM) e peca para ele corrigir o HD problematico.
Basicamente eh o mesmo processo se voce tiver um PC rodando OK, coloque o HD problematico como secundario, de boot pelo HD bom e peca para corrigir o boot do HD problematico.
Na pior hipotese, com acesso ao HD problematico da para clonar os dados para um HD bom recem formatado com o metodo acima (e manter os dados).
Boa sorte !