I used ddrescue in a Ubuntu Live boot to rescue data from a failing 3TB external HDD formatted as NTFS. I had it copy the data directly to a new physical device, i.e. I didn't create an intermediate image file:

ddrescue /dev/sdb /dev/sdc rescue.logfile

After about 2 weeks, ddrescue has finally finished its magic, so I booted back into Windows to assess the damage. Windows is recognizing the new device, but doesn't seem to mount any partitions.

When I go into Computer Management -> Disk Management, I do indeed see the partition that ddrescue created. However, it is a "RAW" partition, which apparently Windows can't read. How do I tell Windows to reinterpret it as an NTFS partition?

I thought of using chkdsk, but that seems to require that I be able to mount the partition in the first place.

*Note: I should mention that the drive I am rescuing is NOT a drive that I boot from.

*Update: I've tried running testdisk, and can successfully see the file system on the new drive. However, testdisk gives me a "write error" when I try to use it to fix the partition table.

So, now I am running chkdsk /f h: in Windows. chkdsk is currently in a loop with message:

Inserting an entry into index $0 of file 60.

According to this article, this is normal while chkdsk rebuilds the Master File Table:

The $Extend\$Objld is a meta-data file; a special hidden file that the NTFS file system uses to store file-system information. (The NTFS file system is the one that Windows XP/Vista/7 uses.) For those of you who might be interested in the technical details, it is found in position 24 or 25 of the boot hard disk drive's Master File Table and contains an index to the unique object identifier numbers that NTFS allocates to every file on the computer.

Mine seems to be in position 60, but I assume this is because of the unusual way in which I created the partition. I guess I'll be waiting another day to see how this turns out.

  • Are you sure you got the disk header information? I.E. did you just copy the specific partition or the whole disk? – mdpc Oct 23 '14 at 6:04
  • I did ddrescue /dev/sdb /dev/sdc rescue.logfile. I assume sd* refers to the entire disk? – alexw Oct 23 '14 at 6:14
  • I'm running a program called testdisk right now, it recognizes the partition and is even able to list the file structure. It's analyzing the cylinders, apparently so it can write a fresh partition table. We'll see what happens in the morning. – alexw Oct 23 '14 at 6:21

Ok, it looks like chkdsk /f <drive letter>: did the trick! To recap, here's what I did when my external, non-booting NTFS (Windows) drive stopped working:

  1. Shut down and disconnect the drive to prevent further damage.
  2. Buy a new external hard drive of equal or larger capacity. Also, get a decent size flash drive if you don't have a spare lying around. If you can afford, buy two hard drives - one as a backup drive so you don't have to do this again in the future ;-)
  3. The recovery process will take several days to a few weeks to complete. So if you're using a laptop at home, find a place in your house where the equipment won't be distubed. Hint: put it somewhere out of the way of kids' fingers, dogs' tails, and cats' butts.
  4. Install Ubuntu Live directly to the flash drive using unetbootin.
  5. While it installs, make yourself a cup of coffee or tea.
  6. Boot your computer off of the flash drive (select the flash drive as the boot device from the BIOS startup menu). Watch carefully, the option for the menu disappears fast!
  7. In Ubuntu, go to System->Administration->Software Sources. Enable the Universe Repository so that we can install ddrescue.
  8. Open a terminal in Ubuntu by pressing Ctrl + Alt + T.
  9. Run sudo apt-get install ddrescue to install ddrescue.
  10. Find a way to keep your failed hard drive cool. I used ice packs, but some people have reported sticking it in the freezer and running cables out to their computer. Whatever you do, make sure it stays dry!
  11. Plug in the old hard drive, leaving the new drive disconnected.
  12. Run sudo fdisk /l. This will bring up a list of partitions.
  13. If your drive is still in any way salvageable, it should show up in this list with a device name (for example, /dev/sdb). Identify your failed drive based on its capacity and write it down, noting that it is the failed drive. If ambiguous, disconnect any other drives until you are certain of which drive is which.
  14. Connect the new drive, and run sudo fdisk /l again. Identify the new drive (e.g., /dev/sdc) and write it down, labeling it as the new drive.
  15. Now that you've identified the drives, it is time to salvage your data! Run sudo ddrescue --no-split -d <old drive> <new drive> rescue.logfile, inserting the names of your drives. The no-split option will tell ddrescue to salvage as much of your data as quickly as possible, and not waste time on problematic data blocks. You want to do this so it can rescue your data before any more damage occurs.
  16. ddrescue can take anywhere between a few days to a few weeks to complete. During this time, try to keep the drive as cool as possible. I did this by replacing the ice packs every day, once in the morning, and again at night. Maybe you can find a better way.
  17. Once ddrescue completes the no-split run, you can try to recover more data using sudo ddrescue -d -f -r3 <old drive> <new drive> rescue.logfile. r3 tells ddrescue to try up to three times to read a damaged block.
  18. When you've wrung as much data as possible out of the old drive, and are ready to cut your losses, it's time to remount the drive. Reboot your computer, but this time into back into Windows.
  19. Check to see if you can access the data on your new drive. If yes, then congratulations! If not, you'll get an error message like "The drive needs to be formatted" or "the drive cannot be read" or something like that when you click on the drive. Don't format the drive, your data is there! We just need to repair the file system. To do that:

    a. Disable your antivirus, and any automatic update services that might try to automatically reboot your computer. I'm looking at you, Windows Updater!

    b. Open a command console as an administrator. Start menu -> Accessories, right-click on command prompt, "run as administrator".

    c. Run chkdsk /f <drive letter>:. Windows will now try to repair your file table. This process can take about half a day. During this time, you might get the same message over and over, this is perfectly normal. See this article for more information about chkdsk.

    d. With any luck when chkdsk finishes, your drive will remount and you'll be a happy monkey again.

  20. Back up your data on a regular basis!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.