My thumb drive is said to be corrupted (W7 and XP). It also says it
is of unknown and cannot be formatted when I try same. Should I toss
it? Or is there something I can try?
Thanks
Big Fred
If you buy thumb drives from Ebay, some of those are counterfeit.
They take a 2GB flash drive, and pretend it is a 16GB flash drive.
When the OS attempts to format such a device, where the capacity
has been adjusted to "go past the end of the flash chips",
nothing good comes of it. Such thumb drives, if you know
the technique, you can use a manufacturer-type program
to set the capacity back to the proper (2GB) value,
and still use the stick as a 2GB stick.
There is actually a document page on Ebay, dedicated to the evils
of flash drive counterfeiting. It was quite a prevalent
practice, because the seller could offer "cheap cheap cheap"
drives, at 1/8th the price. Because the capacity was
faked by a factor of 8. They could give the appearance
of you getting a Kingston thumb drive, at a ridiculously good
price.
This is not the original article on fakes, but it'll do as an example.
http://www.ebay.com/gds/BEWARE-of-F...lash-Drives-on-eBay-/10000000001456613/g.html
*******
If you bought the thumb drive from a reputable source,
and it is behaving this way, and you don't need to
recover any data from it, then toss it.
If you bought it from Ebay, Craigslist, a dark alley, then...
you've likely "been had". Sit down at the piano and
play the theme from "The Sting" :-(
*******
This section is optional.
You can stop reading here if you want
You could probe the device with "dd". The first link,
contains hints on how to use the program, what the
difference between Partition0 and Partition1..n is,
and so on.
http://www.chrysocome.net/dd
http://www.chrysocome.net/downloads/dd-0.6beta3.zip
That is a dangerous program, and can erase your C: drive
if you're careless. Erase C: while the OS is running!
This is a sample of what I would do.
I'm testing this on my known-good 8GB thumb drive.
dd --list <--- this command is safe
From that, I discover the "names" of the drives. Your
"names" will differ from mine. My flash drive is currently
at \\?\Device\Harddisk2\Partition0. The Partition0 means
"refer to the whole drive, and not just some particular
partition". Now, I craft my command.
dd if=\\?\Device\Harddisk2\Partition0 of=/dev/null bs=262144
That command is read-only, and transfers my 8GB flash drive
to "the bit bucket". The /dev/null is a shorthand for
"just throw away the data you're reading". It's an attempt
to measure the capacity of the device, by reading to
the end of it. I specify a block size of 262144, as
that is likely to be a multiple of the flash chip
blocks of data inside it.
A read-only test is relatively safe. Only /dev/null can
get overwritten in this case, and we know /dev/null is
the bit bucket.
The LED on my thumb drive, flashes continuously. When
the light stops flashing, the "dd" command comes back
and prints this on the screen. (If the light stops
flashing and the program is still running and thinks
it's reading, then chances are the device is counterfeit.
If your thumb drive doesn't have an activity LED, this
test is hard to do.) This is a normal result, because
we're expecting the program to bump into the end
of the drive and get an error doing so. The last
record it could read, tells us the actual capacity.
Error reading file: 27
The drive cannot find the sector requested
30592+0 records in
30592+0 records out
Now, if I do the math 262144*30592 = 8,019,509,248
and that is indeed the capacity of the thumb drive.
It took about four minutes for the test to run.
The dd --list output says this
\\?\Device\Harddisk2\Partition0
link to \\?\Device\Harddisk2\DR10
Removable media other than floppy. Block size = 512
size is 8019509248 <---
So when I did the "read test", the amount of
data it managed to read, seems to match the
claimed capacity. If the test "stumbled" before
reaching the end, then you'd suspect a problem
with a counterfeit or fake drive. On my
thumb drive, the instant the LED stopped
flashing (due to reading), the "dd" program
printed its result.
While I could also do a "write test" like this,
only do a write test if you're *absolutely* sure
of the syntax of the command. You can easily
erase the wrong drive this way...
dd if=/dev/zero of=\\?\Device\Harddisk2\Partition0 bs=262144
That should also report
30592+0 records out
That would forensically erase my thumb drive
That writes zeros all over it (only the spared
out blocks are not erased). The "records in"
and "records out" messages would tell you how
far it got, while writing.
Paul