Last year sometime, I had an issue with an SD card reader. It screwed up the file system on the memory card due to some kind of poor connection problem inside the reader contacts with the memory card. It seems to have screwed up a set of at least 4 different
camera images that were stored there.
By this same mechanism, I suppose such a screw up could have rendered the file system unmountable. A check disk operation may have caused the damage by writing what that program thought / believed to be corrections to the disk to properly repair the damage?
I was thinking of writing a memory card scanning program to examine blocks of sectors for JPEG headers and load as many sectors as it would take to get a clean image, then copy those raw sectors to a new file on a separate disk drive, and having a filename
extension of .jpg. So, eventually if all of the missing files are recreated, I could copy the results back to the memory card. I have not worked out how I would determine the exact file size of the sectors read / written from / to disk, but this might be determined
in GNU libjpeg at a low enough level where I could insert some kind of byte counter calculation on the incoming / decoded bytes.
Any situation where you have a poor electrical connection will render the hardware into an unknown / unusable state.
If the circuitry is SDHC, and is not smoked somehow, then by using contact cleaner and lubricant spray, the connectors should properly read and write to the card and avoid such problems. This stuff costs more than no-stick cooking spray, so I'll have to
shop around to get some more because I ran out of it 6 years ago. A work colleague from the 1990s said that some of these sprays contain too much lubricant and less contact cleaner so that you end up having to shake the circuit board to get rid of excess liquid.
I have found that a 32 Gbyte USB 2.0 flash memory drive always seems to work properly. The advantages are that it knows what size it is (always 32 Gbytes), and that it does not have multiple sets of electrical contacts to be dirty and not make a good connection--it
just has the USB lines. So, if any of you guys has a SDHC reader that worked at one time, but no longer works, maybe some contact cleaner might help. The contacts inside the reader and the memory card's contacts have to be clean enough so that the memory card's
circuits can size the card to know whether or not to use SDHC access or not to the card that gets inserted.
I have had instances where a Microsoft update or Windows update changes a driver, and bingo, some applications or the driver become incompatible at some layer of handshaking between them. The only way to check for this is to try to reproduced the sequence
of events by re-installing the operating system from scratch, testing functionality on each driver / update that is applied to find when the card reader begins to malfunction. Obviously, this can be a giant waste of a person's valuable time, so hire a cheap
summer student or something? And let them play with pre-downloaded sets of patch upgrade files (on DVD / CD) or whatever on a clean, blank, new disk drive not connected to the internet. Alternatively, if you have one of those pre-packaged PCs with the operating
system backed up on a separate OEM operating system install partition, then the new hard disk has to be used to backup all of your existing file system using either backup or whatever, and then re-install the OS from that partition and read upgrade files from
the new hard drive's backup copy of your files.
It may be that a custom OEM driver file from the install is getting overwritten with an update that is not so customized and so does not fit as an exact replacement for the original OEM driver file?
Running a directory compare or something might be able to determine which files were changed in the driver's directory to see if any memory card reader-related files got changed?