I'm trying to recover data from a disk with multiple corrupted sectors. Damaged partition (windows partition, sdb2) in no longer mountable (it takes a lot of time, and sometimes makes ubuntu file explorer crash/everything get laggy), so I tried to use ddrescue to recover its data.

I formatted another disk (2 times bigger than damaged partition) in FAT (sda1) and intended to use it as rescue disk.

I run this command :

*sudo ddrescue -B -v -n --force /dev/sdb2 /dev/sda1 récupérationLog2.log*

after 9h hours of intense work, the console ouput seems pretty nice as it mentions 953525 MiB of data rescued (on 1TB partition) :

*GNU ddrescue 1.19
About to copy 953668 MiBytes from /dev/sdb2 to /dev/sda1.
    Starting positions: infile = 0 B,  outfile = 0 B
    Copy block size: 128 sectors       Initial skip size: 128 sectors
Sector size: 512 Bytes
Press Ctrl-C to interrupt
rescued:  953525 MiB,  errsize:   142 MiB,  current rate:     3072 B/s
   ipos:  904228 MiB,   errors:     513,    average rate:  29903 KiB/s
   opos:  904228 MiB, run time:    9.07 h,  successful read:       0 s ago

Everything seems pretty good, but when I mount the rescue partition, sda1, it seems there is no file at all. Eveything is empty. Of course it tried to list hidden files with ls -a, but nothing here.

That's the second times I get what seems a pretty succesful recover without getting any output files. Is there anything I do wrong ? Anything else to try ?

Thanks guys for your support :)


PS: here's an excerpt of logFile

# Rescue Logfile. Created by GNU ddrescue version 1.19
# Command line: ddrescue -B -v -n --force /dev/sdb2 /dev/sda1 récupérationLog2.log
# Start time:   2017-04-18 09:47:59
# Current time: 2017-04-18 18:52:11
# Finished
# current_pos  current_status
0xDCC247D000     +
#      pos        size  status
0x00000000  0x0160C000  +
0x0160C000  0x00000200  -
0x0160C200  0x02B5FC00  /
0x0416BE00  0x00000200  -
0x0416C000  0x14B94000  +
0x18D00000  0x00000200  -
0x18D00200  0x003FFC00  /
0x190FFE00  0x00000200  -
0x19100000  0x4F570000  +
0x68670000  0x00000200  -
0x68670200  0x00005C00  /
0x68675E00  0x00000200  -
0x68676000  0x00094000  +
0x6870A000  0x00000200  -
0x6870A200  0x00001C00  /
0x6870BE00  0x00000200  -
0x6870C000  0x008E0000  +
0x68FEC000  0x00000200  -
0x68FEC200  0x00002C00  /
0x68FEEE00  0x00000200  -
0x68FEF000  0x0000A000  +
0x68FF9000  0x00000200  -
0x68FF9200  0x00006C00  /
0x68FFFE00  0x00000200  -

PS2: I had to add the argument --force cause everytime I tried to use ddrescue it said it could not start due to ouputlog file already existent even if I tried different, non already existent, file name each time.

  • Did you read / follow the GNU ddrescue Manual? And the original drive wasn't mountable before right, did you have to do anything to fix it, run fsck or similar? I can't read the logfile, but there is ddrescueview in the ubuntu repos for a neat GUI – Xen2050 Apr 19 '17 at 9:19
  • Did you try to mount /dev/sda1? – d a i s y Apr 19 '17 at 9:23
  • 1
    Have you considered using Testdisk and PhotoRec to recover data from the cloned copy? – sudodus Apr 19 '17 at 10:55
  • 1
    The damage of the original partition is the main reason you can't read it. The error has likely been copied over to the rescue partition so it is of little surprise that it can't be read. Use testdisk on the rescued clone but you will have no luck if the original partition was encrypted. – Takkat Apr 19 '17 at 11:19
  • 1
    I'm currently using testdisk to recreate an img file of the damaged partition and will keep you posted guys ! thanks for your support :) – Nicolas D Apr 19 '17 at 12:25

I formatted another disk (2 times bigger than damaged partition) in FAT (sda1)


sudo ddrescue -B -v -n --force /dev/sdb2 /dev/sda1 récupérationLog2.log

This is not how it works. Here's what you are doing now:

  • You are copying the contents of /dev/sdb2 over /dev/sda1
  • You have marked the latter as FAT in the partition table, but you are overwriting with a NTFS file system
  • When you try to "mount" /dev/sda1 it doesn't work because that is not a FAT file system, of course

As a side note, using mount for data recovery is rarely a good approach especially if you don't ensure it is read-only. Also, don't add accents or special characters to file names in the terminal.

What you should've done instead is:

  • Create a new partition to hold an image file of the failing partition. Note that FAT is not an acceptable choice because you cannot store FAT files which are larger than 4GB. NTFS or exFAT would be OK.
  • Mount said partition and copy the drive into a file, e.g.:

    ddrescue /dev/sdb2 /media/user/External/copy.img /media/user/External/copy.log
  • Perform data recovery on the copy as explained in Recovering broken or deleted NTFS partitions

  • Thanks for your detailed suggestions which are really appreciated. I'll try this asap ! – Nicolas D Apr 20 '17 at 13:45

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.