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.