I have 32MB USB drive which is screwed. It was formatted as a FAT filesystem.

Windows is saying that the media is now unformatted so I assumed the FAT table was corrupt.

I then stuck it in my linux box and tried to dosfsck the device file. It subsequently failed with an I/O error on the device. I then decided that it was a hardware problem and in a last attempt used the following command:

#dd if=/dev/sda of=backup

After a longish pause I had a 32MB file on my local disk. I did a check and there is clearly data in the file and recognisable strings. Firstly it seems strange that there is an IO error on the device yet I could copy all the data to a local file. Secondly what do I do now in regards to recovering the data?

Anyone know?