Last night my android phone said it can't read the SD card and it wanted to format it. I pulled it out, put it in a card reader and tried to mount it on my desktop pc:
$ sudo mount /dev/sdb1 tmp
[sudo] password for ivan:
mount: /dev/sdb1: can't read superblock
Tried to fsck it:
$ sudo fsck.msdos /dev/sdb1
dosfsck 3.0.12, 29 Oct 2011, FAT32, LFN
Contains a free cluster (2). Assuming EOF.
FAT32 root dir starts with a bad cluster!
And to see if there is actualy anything to mount:
$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 3951 MB, 3951034368 bytes
122 heads, 57 sectors/track, 1109 cylinders, total 7716864 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 8192 7716863 3854336 b W95 FAT32
Now I'm doing a dd image before I've broken something else.
I know EXT filesystems have superblock backups across the device that can be used in such a moment. Does FAT have backups?
Do you know any method for recovery?
I've tried photorec and it did manage to retrieve data, but without any file names or directory structure. It doesn't do any good except to restore my pictures, and they are my least concern.
[UPDATE] dd failed with Input/output error after copying 2.7 GB. Is it possible the card is really broken?