2

I'm attempting to rescue a failed NTFS HDD via ntfsclone:

  • I began to copy sector by sector via:
    ntfsclone --rescue --force --overwrite '/dev/sda1' '/dev/sdb1'
    
    It runs quickly up to 30% then tries to log bad sectors, becoming extremely slow, and I hear the drive's motor and heads running, so I think it attempts several times to read any bad sectors
    • --rescue: continue to process any bad sector found
    • --force: continue if the volume is dirty

Any suggestions to speed this up, or perhaps it's better to use ddrescue to do this job?

JW0914
  • 7,052
  • 7
  • 27
  • 48
ultradj83
  • 41
  • 5
  • Sorry to hear about this. I attempted to clean up the formatting here and I saw this broken sentience, “then it [line break] to log bad sectors becoming extremely slow.” I assumed it should be connected with the word “tries” but please edit to restore your original meaning to that sentence. – Giacomo1968 May 01 '21 at 21:57
  • GNU ddrescue is the way to go. Garloff ddrescue is a similar utility. Check out the options as you can control how it deals with bad sectors. You might have to try several times, and it's a bit of an art, but you might get lucky with the default settings. I've had good success with them, but haven't had to use them recently. Generally you don't want it trying much on the first pass, to get as much data copied as possible, coming back for the tricky spots later. – GuitarPicker May 02 '21 at 06:48
  • [`TestDisk`](https://www.cgsecurity.org/wiki/TestDisk) can be used to recover data, but you can't "rescue" a failed HDD _(failed means a hardware failure)_. To ascertain if the drive has failed, check S.M.A.R.T data via [`smartmontools`]: `smartctl -a /dev/` - hardware failures are isted below S.M.A.R.T values about halfway down. To test drive: `smartctl -t short /dev/; sleep 61; smartctl -a /dev/ | grep progress; smartctl -t long /dev/` _(long test takes several hrs depending on the capacity of the drive - check progress via `smartctl -a /dev/ | grep progress`)_ – JW0914 May 02 '21 at 14:54

1 Answers1

1

Typically the answer is yes, it is better to use ddrescue. The goal is always to stress a defective drive in the least possible way. Using a defective drive is likely to cause more dammage.

The ddrescue logic ensures to avoid areas with lots of broken sectors and recovering a big share of a defective drive before tackling broken areas.

You used ntfsclone instead. This might only be a good idea in special cases because ntfsclone only duplicates used sectors as opposed to what you said: "sector by sector".

In cases where your source partition is only lightly used, using ntfsclone you might stress the drive less but it comes at the expense of additional time once your broken sectors are positioned in series and ntfsclone won't try to jump over that area and cover it later.

r2d3
  • 3,298
  • 1
  • 8
  • 24
  • You couldn't be more right sir. +1 I am glad you posted this. Also.. to the poster of this question.. I have had `dd` take WEEKS to get data copied onto a new drive so be patient and set this up on a machine that you aren't using. Why WEEKS? Because `dd` will need to timeout on any bad sectors it finds and a 1TB+ drive has A LOT of sectors ;) – Señor CMasMas May 02 '21 at 16:41
  • Well, this is the same problem I had with ntfsclone. I sat the noscape option but it's taking days for 1TB, maybe to set the number of retry attempts to 0 makes sense? There's only 230GB of data on that, it would be wonderful to have an option to only scan sectors with data... – ultradj83 May 02 '21 at 22:06