@fzabkar:
fzabkar wrote:
This begs the question, did the partitioning utility correctly detect the capacity and CHS geometry of the drive?
There is
no CHS geometry reported by a USB stick, so a partitioning utility can't detect it. The USB MSD spec means that there is no requirement for a mass storage device to support any command detailing any kind of geometry (unlike the (fake) geometry which
is reported in the Identify Device response from a SATA disk, for example).
In short, usually USB Mass Storage devices support just the minimum 6 (SCSI) commands - none of which supplies (even fake) geometry information to the OS. Those commands are: Read(10), Write(10), Inquiry, Request Sense, Test Unit Ready & Read Capacity. Therefore if the partition table is empty, an OS has to generate a (fake) geometry to use for subsequently populating the partition table, based on the device capacity.
For one of the (non-Windows) OS which I was involved with, I worked with a colleague investigating the (device driver) routines which had to generate a fake geometry, for the OS to use for its own purposes (for example, when creating a new partition table

) - the generated CHS values multipled out as close as possible to, but less than or equal to, the reported device capacity (but also had other restrictions, at least for that OS). The point is that there is
no "one right answer" for the geometry of USB MSD, and in any case, the geometry is not supplied by the USB device itself.
@MrAndersons:
I won't spend too long replying, as I may just be duplicating whatever info you received via PM from
networks.
MrAndersons wrote:
So if this is actually only a 32mb drive and I can still only retrieve corrupt docx files from it, then what are my options?
IMHO you need to give much more info about what you have discovered, and what you have done already, than that provided so far - without that, IMHO it's like asking for drugs to cure your disease, when the disease itself is not yet diagnosed

Since there are now big concerns over what the customer has said, then the questions I explained before, for you to ask the customer, need to be answered IMHO. For example (and this is just a sample): What
exactly is the history of this USB stick? When
were the requested docx files last read successfully from the stick? When were they first
not read successfully? What changed between the dates given in the answers to the previous 2 questions? What prompted the customer to try to read the docx files from this stick - is it just a backup? Is it possible that they went to this backup due to their main PC docx files also being corrupt? (ie is it possible that the PC which saved the files onto this stick, saved them already corrupted due to a hardware fault etc. etc.) What exactly was the customer's first reported problem when trying to read the docx files from this stick - was it that they were reported by the application (Word?) as being corrupt, or some other initial problem (e.g. I/O error)? Has the customer done anything with the stick (e.g. run any disk recovery or other utility) since they first discovered they had a problem? Is it possible that the needed files exist elsewhere on some different 256MB stick, that the customer has been mis-remembering? And why have they been claiming that this was a 256MB stick, when all the evidence so far points against that?
Now on to the USB stick itself: What file types are there on the stick? Are all file types "corrupt"? Are
all docx files corrupt or only a few? What is common between the "corrupt" docx files (size? date? machine used to save them?)? Have you compared good and "corrupt" docx files from this stick (or between a known good docx from elsewhere and a corrupt one from the stick) using a hex editor - what is different in the file structure? Do the "corrupt" files have a sane size? How exactly are you testing that the files are "corrupt"? Someone (drc?) reminded us recently that docx files are compressed xml data - have you tried opening some (corrupt and good) in 7zip or similar? As
fzabkar suggested, a read only chkdsk would be helpful in confirming
filesystem sanity, though not not correctness of the data itself.
Of course there are many different file carving utilities you could try, but if one of them works in your case, then you won't gain any understanding of the real problem, and if none of them work, then you also gain no useful insight from that result. That's why a more detailed manual approach is what I would be doing - hence those starting questions above, to try to "frame" the problem. Depending on the answers that you give to those questions above, then a recovery strategy should become clearer (although I'm not committing to spending unlimited time on this).
Alternatively, you might decide to outsource the recovery since you can provide a disk image, if you don't have the time to spend on the investigation yourself.
Good luck with whatever you decide
