daviddschool said:
WinXP does see the device, but it tell me "You need to format this
device". So the device is being seen by windows, but the info/data on
it is not. Do you want me to run the "lsusb" cmd from DOS? When I go
to COMPUTER MANAGEMENT in windows, the DEVICE manager sees it as
HEALTHY and tells me the files size, but again, this device was full
of info that is now seemingly gone. So the device seem to work, but
how can I get the info back?!?!
That is a good sign. So it is present as a raw device. You can work
on it with Testdisk then, and put back a partition table. Testdisk will
scan the entire device, looking for partitions of recognizable type.
My recommended procedure is
1) Back up the device, sector by sector, while in Windows.
This program can do that, but you have to figure out the
command syntax. The syntax will be similar to the example
I showed you for Knoppix. You should specify a block size and
count, in order that this program complete the backup copy properly.
(This windows port of dd has a bug, where it cannot detect the
end of a USB flash drive properly. As long as you use block size
and count parameter, the program works properly.)
http://www.chrysocome.net/dd
You run that in an MSDOS window. Do "dd --list" first, to get
the size info, and name of the device. This is my 8GB USB flash
stick. The number below is not 8*1024*1024*1024, it is actually
7648*1024*1024. A reasonable count and block size would be
244736 * 32768. The product of those two numbers is 8019509248.
\\?\Device\Harddisk2\Partition0 <---- to back up the whole stick
link to \\?\Device\Harddisk2\DR10
Removable media other than floppy. Block size = 512
size is 8019509248 bytes
\\?\Device\Harddisk2\Partition1 <---- the first partition
link to \\?\Device\Harddisk2\DP(1)0-0+b
Removable media other than floppy. Block size = 512
size is 8019509248 bytes
Yours is 2GB, so your command might look like this. Divide your
total size for partition0 by 32768. My guess at the value for
count is roughly 61184. Do the math exactly, such that bs * count
is equal to the size declared for partition0 in the --list output.
dd if=\\?\Device\Harddisk2\Partition0 of=my_flash_stick.dd bs=32768 count=61184
That will place a ~2GB file in the current working directory
in the DOS window (likely the same directory you've got the
"dd.exe" program in).
You have to know a minimal amount about working in a command window,
to work with command line stuff. You need to "cd" to the correct
directory, as otherwise, Windows won't know the dd.exe executable
is stored there. The "path" variable for Windows can be edited, but
for a job like this, it is simpler to just CD to the directory
containing dd.exe.
2) Run Testdisk. Let it scan for a partition, and install a partition table.
If Testdisk screws up, use this to restore the flash stick to the state
before Testdisk touched it. This is your insurance policy.
dd if=my_flash_stick.dd of=\\?\Device\Harddisk2\Partition0 bs=32768 count=61184
Just a word of warning. My 8GB stick currently has a FAT file system on it,
and is an image of a floppy diskette. Testdisk did not analyse it properly.
Testdisk should work fine, for more conventional FAT32 or NTFS cases.
If, at any time, you don't like what you see in Testdisk, press control-C
to abort the program. The menus don't all have quit items, but if you're
sitting in a menu, and don't like the results, press control-C and
try some other options in the program. The web site for Testdisk also
has various bits of advice on it. This one, for example, might help you
in the future.
http://www.cgsecurity.org/wiki/Damaged_Hard_Disk
HTH,
Paul