Drive removed while accessing, filesystem is corrupt, can it be fixed?

The drive slipped off my desk and dropped out of a USB-HDD 2.5" SATA caddy while I was copying some files, and now it won't recognize properly in Windows. It does show up in Testdisk but before trying to recover things that way I want to know if there's a way to fix the filesystem as Testdisk is messy and unpredictable.

Edit: Sorry, the drive is 500gb, formatted to NTFS. OS is Win7 64bit.

I tried running CHKDSK on it, but it said

`C:\Windows\system32>chkdsk f:

The type of the file system is NTFS.

Unable to determine volume version and state. CHKDSK aborted.`


You may have one of two types of errors:

  1. Logical errors in the file structure, because the write process was interrupted. Indices and directories may no longer be in sync with the actual data written to the files.

  2. Damaged physical sectors on the disk because the heads crashed into the platters when the disk hit the floor/desk.

For (1) any software 'fix' tool will work, like Windows chkdsk.

For (2), in order of thoroughness (which generally also indicates the time they will take to run), I recommend one of:

  • Run Seatools for DOS (not the Windows version; download the ISO), and choose the 'LONG Test'. This program is free.

  • Run HDD Regenerator. This program is not free ($99 US).

  • Run SpinRite (running the executable under Windows will extract an ISO that you can burn). Choose level 4 for through testing. This program is not free ($89 US) and is the only one that I know that can often recover data from damaged sectors; this may take a long time though. It comes with a money-back guarantee.

All three programs scan the hard disk at the physical level, and should be run from a bootable CD.

Strictly speaking you should try the repairs in order (2) then (1) because the software mentioned for (2) could recover actual data that is necessary for (1).

You may of course decide to do only (1), maybe that fixes enough for your purpose - but note that changes made by (1) are (also) irreversible, so (2) will not turn up more data after that, it will just fix any bad sectors.