I found few hints for recovering cards with Linux, but before I set up some live USB I'm wondering if there are any effective Windows tools.
This is what happened to my card:
- It was in an old phone that was unused for a while and became used.
- It worked well until I changed it to become app storage. Problems started when the phone restarted when one of the apps was manually attempted to be moved from internal storage to SD.
- I managed to fix some of smaller issues, like a corrupted app every now and then, appearing for ~3 months, though.
- 2-3 weeks ago it went completely downhill after I attempted to upgrade Google app that was in internal storage, not on SD. The phone restarted and since then lots of apps started going crazy and the phone became quite laggy. The memory usage values in app info started becoming random.
- I tried removing the broken apps but it didn't help, it only became worse. So I removed everything one by one and the card in the end displayed some crazy -1.6 million bytes value as its free space, even though it could be read and written to e.g. by taking a photo or sending a file through PC. I had to detach the card and fix Android with a factory reset. The phone works fine again, but the card can't be read by anything now. Windows displays two disks, both empty RAW and read-only, one ~29.5 GB, other one with 16 MB. Formatting with the default tool can't be done due to read-only status.
Recovering the card itself is not too important to me, it's just a few dollar 30 GB card. I would just like to know what's the best way of dealing with such issues in case I ever encounter one with a bigger card and if the card is recoverable in this state in the 1st place after this confusing turn of events.