[ltp] HDD emergency repair (howto)

Lou Burnard linux-thinkpad@linux-thinkpad.org
Thu, 7 May 2009 09:59:31 +0100


I agree that this is a really good account... my only comment (from
many years of bitter experience) is that Richard is a VERY VERY LUCKY
guy.  What are the odds that the head won't have actually caused
damage to the platters before parking itself in the wrong place? What
are the odds that you won't introduce some crud into the drive when
disassembling it or exerting your 10 newtons poke?

But definitely cause for celebration when it DOES work!

On Thu, May 7, 2009 at 8:07 AM, Adrian Bastholm <adrian@javaguru.org> wrote=
:
> It would be nice to have a howto with pictures :P. By the way, is there a
> way of fixing those old IBM DeathStar drives with the clicking problem ?
>
> /adrian
>
> On Thu, May 7, 2009 at 7:57 AM, Ted Ghose <ted@ghose.us> wrote:
>>
>> Richard,
>>
>> awesome, I've two of those... let me try!
>>
>> Appreciate it a lot
>>
>> thanks
>>
>> -tg-
>>
>> On 5/6/09, Richard Neill <rn214@hermes.cam.ac.uk> wrote:
>> > Dear All,
>> >
>> > I've just saved a friend's SATA notebook disk, and thought it might be
>> > worth writing up a brief account.
>> >
>> > Symptom:
>> > =C2=A0 =C2=A0Laptop wouldn't boot at all, stalling at the first BIOS s=
creen.
>> > =C2=A0 =C2=A0HDD wasn't spinning.
>> > =C2=A0 =C2=A0Unplugging HDD allowed the laptop to boot via live-CD.
>> > =C2=A0 =C2=A0=3D> HDD faulty.
>> >
>> > Confirm:
>> > =C2=A0 =C2=A0There is nothing else that can be done with this disk. Pr=
ofessional
>> > =C2=A0 =C2=A0 data recovery is too expensive. So OK to take a risk.
>> >
>> > Open the disk:
>> > =C2=A0 =C2=A0Carefully, using a torx screwdriver.
>> > =C2=A0 =C2=A0One screw is hidden under the label.
>> > =C2=A0 =C2=A0Clean room would be nice, but I don't have one
>> >
>> > Discovery:
>> > =C2=A0 =C2=A0The head appears to have cold-welded itself somewhere in =
the
>> > =C2=A0 =C2=A0middle of the disk. The disk can't spin at all. This is t=
he
>> > =C2=A0 =C2=A0second time I've come across a 2.5" disk with this proble=
m.
>> > =C2=A0 =C2=A0User says it wasn't mis-treated.
>> >
>> > Solution:
>> > =C2=A0 =C2=A0Carefully, without touching the platter, use a fingernail=
 to
>> > =C2=A0 =C2=A0force the head back into the parked position. Some consid=
erable
>> > =C2=A0 =C2=A0force (perhaps 10 newtons?) is required.
>> > =C2=A0 =C2=A0Then quickly re-assemble drive before too much dust gets =
in.
>> >
>> > Recovery:
>> > =C2=A0 =C2=A0Put disk into thinkpad. Boot thinkpad from a live CD. (Ma=
ndriva
>> > 2009).
>> > =C2=A0 =C2=A0Fortunately, the "dead" disk spins up.
>> > =C2=A0 =C2=A0In the live-CD environment, add the package repositories,=
 and install
>> > =C2=A0 =C2=A0ddrescue. =C2=A0(Note there are 2 similar programs: ddres=
cue and
>> > dd_rescue.
>> > =C2=A0 =C2=A0I've had success with both.)
>> >
>> > =C2=A0 =C2=A0Mount an external USB HDD. Let ddrescue do its stuff:
>> > =C2=A0 =C2=A0 =C2=A0ddrescue /dev/sda sda.img ddrescue.log
>> > =C2=A0 =C2=A0After about 24 hours, ddrescue has recovered all 80 GB of=
 the disk,
>> > =C2=A0 =C2=A0excepting about 5 MB.
>> > =C2=A0 =C2=A0Also, save fdisk info:
>> > =C2=A0 =C2=A0 =C2=A0fdisk -l /dev/sda > sda.fdisk.txt
>> >
>> > Extract partition 1.
>> > =C2=A0 =C2=A0 dd if=3Dsda.img of=3Dsda1.img bs=3D512 skip=3D63 =C2=A0 =
=C2=A0#value depends on fdisk.
>> >
>> > =C2=A0 =C2=A0 Mount the partition loopback:
>> > =C2=A0 =C2=A0 =C2=A0 mount -o loop,ro sda1.img /mnt/tmp
>> >
>> > =C2=A0 =C2=A0 Note: it's supposed to be possible to do
>> > =C2=A0 =C2=A0 =C2=A0 =C2=A0mount -o loop,ro,offset=3D32256 sda.img =C2=
=A0/mnt/tmp
>> > =C2=A0 =C2=A0 =C2=A0but I found it didn't work.
>> >
>> > =C2=A0 =C2=A0 Note 2: It would normally have be easier to directly ext=
ract
>> > =C2=A0 =C2=A0 the partitions one at a time, at the ddrescue stage,
>> > =C2=A0 =C2=A0 But in this case, the offending disk is a Windows XP
>> > =C2=A0 =C2=A0 system, and I want to be able to re-image the OS onto a =
new
>> > =C2=A0 =C2=A0 drive. A filesystem-level copy won't work here. [In Linu=
x, it's
>> > =C2=A0 =C2=A0 easy: just fdisk, mkfs, rsync, then fix fstab and instal=
l grub]
>> >
>> > Recover data:
>> > =C2=A0 =C2=A0 copy stuff from /mnt/tmp
>> >
>> > Re-image to a new disk:
>> > =C2=A0 =C2=A0 Plug in new HDD, boot from liveCD.
>> > =C2=A0 =C2=A0 dd if=3Dsda.img of=3D/dev/sda
>> >
>> >
>> > I hope that's useful to someone...
>> >
>> > Morals of the story:
>> > =C2=A0 =C2=A0(1) ddrescue is really useful.
>> > =C2=A0 =C2=A0(2) Linux can do almost anything.
>> > =C2=A0 =C2=A0(3) Even a totally stuck HDD can be saved without needing=
 a
>> > cleanroom.
>> > =C2=A0 =C2=A0(4) Having a USB-SATA adapter would be useful.
>> >
>> > Best wishes,
>> >
>> > Richard
>> > --
>> > The linux-thinkpad mailing list home page is at:
>> > http://mailman.linux-thinkpad.org/mailman/listinfo/linux-thinkpad
>> >
>>
>>
>> --
>> *:-.,_,.-:*'``'*:-.,_,.-:*'``'*:-.,_,.-:*'``'*:-.,_:-.,_,.-:**:-.,_,.
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Sa=
ve time... see it my way
>> *:-.,_,.-:*'``'*:-.,_,.-:*'``'*:-.,_,.-:*'``'*:-.,_:-.,_,.-:**:-.,_,.
>> --
>> The linux-thinkpad mailing list home page is at:
>> http://mailman.linux-thinkpad.org/mailman/listinfo/linux-thinkpad
>
>
>
> --
> V=C3=A4nliga h=C3=A4lsningar / Kind regards,
> Adrian Bastholm
>
> I would change the world, but they won't give me the sourcecode
>