You should do a --recover of your damaged partition. I also accidentally formatted my only backup with wallets. Once the wallets are recovered with recover software like Recuva,... they seem to get damaged in some way. I am still not finished recovering them completely, but --recover is the first step.
What I used is:
pywallet.py --recover --recov_size 931Gio --recov_device f: --recov_outputdir d:\recovered
It will ask you then to put in a new password (for the finished encrypted wallet.dat). That is where I found a bug. Whatever password I chose, at the end I am able to get my coins to show up, but I cannot send them because the password I chose when starting the --recover does not get accepted. First I thought I misspelled something and started the whole process again. Each time it takes about 6 hours... But even when I was absolutely correct with my password, it still would not accept the password at the specific wallet for decryption.
Is there another step I can do?
I also tried the --dumpwallet command with the recovered wallet, but I am not able to find the correct address that was used on the wallet I am trying to recover.
pywallet.py --dumpwallet --datadir d:\recovered --wallet wallet.dat --otherversion=34 > dump.txt
(I have tried otherversions 34 - 37)
That lists all key pairs, but none of them is the correct one I am looking for. What am I doing wrong? Obviously the right keys must be in the recovered wallet, as I am able to see the correct balance once I am doing the -rescan command. But when I am specifically looking for the address and it's private key, I am unsuccessful.
Can somebody point me to the right path?