[vox-tech] hard drive recovery

Ted Deppner vox-tech@lists.lugod.org
Mon, 29 Jul 2002 14:36:29 -0700


On Mon, Jul 29, 2002 at 01:04:42PM -0700, Peter Jay Salzman wrote:
> dd if=/dev/hdd1 of=./firstpartition
> dd if=/dev/hdd2 of=./secondpartition

you'll want to use conv=noerror,sync at the bare minimum.  noerror will
make sure that errored block reads are represented as NUL filled blocks on
output (otherwise the unread block isn't written, and you're off by a
block in our output, etc, very messy).  sync makes sure short read blocks
are padded out, for the same reasons.

You can use seek and skip to read past really bad areas (that would crash
the drive or lock up the PC), make sure to use conv=notrunc when doing
this... it's tricky.

And finally, you might need to recompile the kernel with read-retries and
the like in the IDE subsection to speed up the recovery process.

I've successfully recovered a drive with a bad sector 0 using these
methods, worked flawless once I figured out the conv=noerror bit.  This
should work fine for "bad sectors" type errors.

I have a friend who's good at low level debugging IDE stuff (like figuring
out the IDE bad block list), but he sends drives out to another company
for really messy things... I can get that detail if desired.

-- 
Ted Deppner
http://www.psyber.com/~ted/