How can I recover photo files from a memory card with a corrupt filesystem?

“The card is similarly unrecognisable on my computer CF card reader.”

Basically for software to work, the card has to be detected in Windows Disk Management with correct capacity.

enter image description here

Verify with a different reader, if card still isn’t recognized then in general this can’t be recovered using software. If I am asked to handle a case like that I:

  • Open the ‘case’ and inspect the PCB using multimeter and microscope. If I can spot defects I’ll try repairing them, and if successful I can now access the card. Some times it’s enough to reflow the solder under the NAND chips. If a working and matching donor board is available, often NAND chips can be transferred to donor PCB.

  • If unable to repair I unsolder NAND chips and ‘dump’ them using a reader. Using specialized software I then convert the dump to a logical file system using software that emulates the controller (or tries as good as it can) from which files can be recovered. Ideally result is a coherent file system, however sometimes raw recovery is highest achievable. It’s the logical image reconstruction part that is most complex and time consuming.

NAND readers are not overly expensive (but still too for a single case probably), it’s the software that is needed to convert the raw dump to a logical image that is. I use the Soft Center reader and software (called Flash Extractor).

With regards to logical photo recovery software, often mentioned names are PhotoRec and Recuva, also free and very good is R-Photo made by the company that produces R-Studio which is used in many labs for logical data recovery.

If card (whatever card, CF, SD etc.) is detected but physical capacity is incorrect:

In these cases dumping the NAND is almost always required. Typically physical capacity is decreased to MBs rather than GBs. It’s an indication controller is working but in let’s call it a safe mode. It is either unable to detect the NAND memory -or- NAND translation table is corrupt. See this translation table as a ‘FAT’ for the firmware, only this table is used by firmware to map LBA addresses to actual NAND pages.