Jeremy's almost but not quite entirely moribund blog

Wednesday, December 28, 2005

Torturing defenseless hard drives, part 2

The movie I mentioned in my last entry is complete. Enjoy.

Saturday, December 24, 2005

Torturing defenseless hard drives

A couple years ago, I was working on a disk imaging utility and I needed to deal with bad sectors gracefully. I rummaged through a box of old drives my company had tested software with years earlier and found several that worked fine, several that didn't work at all, and none in between.

Since I couldn't find a drive that mostly worked but had a few bad sectors, I decided to make one. I pulled the cover off a 120MB (yes, megabyte) Maxtor hard drive and started it up, thinking the dust would kill it quickly, but just maybe I could test my imager with it once or twice before it died.

It ran flawlessly for a week with the top off.

Eventually, I scratched the platter with a screwdriver, and that killed the drive stone dead.

Anyhow, a few days ago I got to thinking, wouldn't it be cool to take a picture showing the moving read/write head assembly? So I opened up a 100MB Seagate drive I had laying around and took some pictures:


But I wasn't satisfied with the lighting, the reflection of the wall trim and power cable in the platters, or the boring two-head pattern. So I decided to fix those things and do it again. I brought in an extra lamp to light up the corner of the room, and I taped white paper to the wall to eliminate unwanted reflections from the platters.

To ensure I'd have a pretty head pattern to photograph, I actually wrote a DOS program in Borland Turbo C++ 3.0 (vintage 1992) using Extended INT 13 BIOS calls to read specific patterns of sectors--some linear sweeps, some sinusoids, and some random shuffles.

Anyhow, I was all ready to go, but the poor 100MB drive I'd used earlier somehow didn't work anymore. <sarcasm>I can't fathom why.</sarcasm> So I needed another drive to torture.

So I went to a local used computer parts shop and bought the smallest, cheapest used hard drive they had--a 1.6GB Maxtor 71626AP--for the princely sum of $5 (with a 90-day return warranty which I intended to nullify post haste). I brought it home, hooked it up, and tested it out a bit. And almost immediately, it made nasty noises and Windows reported bad blocks. Mind you, I hadn't opened the cover yet! I just had to make sure the drive would obey my commands so I could take some nice pictures and video footage of the heads in action.

So I took the drive back and they swapped it for another 1.6GB hard drive, a Samsung this time. Plugging the drive back in at home, I found that this one wasn't even recognized.

So I went back a third time, enjoying the irony of the situation. Here I was, trying several times to get a working hard drive so that I could almost certainly kill it. Anyhow, the store clerk traded the second broken hard drive for a third--a 2GB one this time. Fortunately, this one actually worked. Well, for the moment, at least.

I pulled the cover, plugged in the drive, and powered up the machine. It spun up beautifully. Then I ran my little DOS program I call "hddance", and the heads moved exactly the way I expected them to. I enjoyed the view, took some pictures and some video footage, and considered my $5 well spent. Then I put the drive's cover back on and reformatted it to see if it would still work. Two bad clusters. But it might still have some life in it, if I decide to take naked hard drive pictures again (I certainly wouldn't trust it with any data). Then again, the 100MB Seagate I photographed first didn't have any bad sectors immediately after the fun, but the next time I tried to turn it on it wouldn't even spin up.

Anyhow, here's a photo of the 2GB Samsung:


Once I get around to editing the video footage I took and figuring out how to host it, I'll post the live-action movie. The noise the hard drive makes is almost as interesting as the visible motion.

For now, here are more photos of these drives.