Package: gddrescue
Version: 1.15-1
Severity: wishlist

Dear Maintainer,

While I was waiting hours for 'ddrescue' to scan a scratchy
borrowed DVD, it seemed likely that most waiting time was
spent on the drive trying to read scratched areas where data cannot
be read.

If we could predict where scratches were, we could elect not to
waste time failing read them, and the job could go faster.

The scratches are visible to the naked eye.  Usually continuous 
straight lines or curves, or at worst, concentric. The optical drive
has no eyeball though, and just sees one spot at a time.

If it's possible to map optical disc blocks to a virtual image of a
disk, (i.e. polar coordinates), then it should be also possible to
interpolate where the scratched out blocks would most
likely occur.  

Simplest case: a disc with one long radial scratch at 6 o'clock.
To predict where the scratch is be we read an entire track... if the
track has a bad block, we note the polar angle of the block, then skip
ahead 100 tracks, and see if there's another bad block in line with the
prior one, note the polar angle of that spot, and continue skipping
many tracks, each time noting bad block angles, until there's no bad
block.  Assuming the bad blocks all line up nicely, we back up 50
tracks, and half again, until we find the scratch endpoint, and we mark
what's in between as bad.

Of course a robust algorithm for a very scratchy disk would be more
complex than that, but one has to start somewhere.

Possibly the drive electronics might force it to cache read a bad block
we don't want it to read while reading a nearby good block.  In which
case we'd have to find out how close to the bad block the drive can go
without reading it, and allow for that.

Hope this helps...



-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.1.0-1-686-pae (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C)
Shell: /bin/sh linked to /bin/dash

Versions of packages gddrescue depends on:
ii  dpkg          1.16.1.2
ii  install-info  4.13a.dfsg.1-8
ii  libc6         2.13-24
ii  libgcc1       1:4.6.2-11
ii  libstdc++6    4.6.2-11

gddrescue recommends no packages.

gddrescue suggests no packages.

-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to