… and how to fix for Debian x86 users…
Anyone with a Western Digital Green Power drive should immediately check
the Load_Cycle_Count in their S.M.A.R.T. data. This is the number of
head parks. The drives are rated for 300000 over their lifetime, but the
firmware parks the head after 8 seconds of idle time. If your computer
wakes it up regularly you could wear out in a matter of weeks. Don’t
panic a lot if yours is high. Mine drives varied from 30k to 1.5M before
I figured this all out and stopped them from parking.
I know this because one of my rather new WD10EADS drives crapped out,
causing a fairly unpleasant interruption in my mirrored root partition.
You can not use the standard ATA mechanisms for tuning drives to adjust
this parameter.
There is a utility from Western Digital that you can use to change the
timeout from 8 seconds to 300 seconds, which is probably enough to keep
it from parking the head. Now, if you could run this on any operating
system sold this millennium it would be pretty handy. Sadly, it runs
only under DOS.
I’ve fixed the drives in three different computers, (and failed on three
other drives), and it is an ugly process.
For people running Debian servers, these instructions will guide you
through making a USB flash drive to boot DOS and run the WD utility.
- Go
to wdidle3,
download the zip and unpack it to get the .exe.
- Get a flash drive. I used a 256M one.
- Put a MBR on it. Install
syslinux-common
, then
dd /usr/lib/syslinux/mbr.bin
onto the first block of your device.
- Download a bootable image of freedos, perhaps this
one: balder10.img
- Boot a fake dos machine to format the usb key…
qemu -boot a -fda balder10.img -hda /dev/sdX -k en-us
- Use
fdisk
to make a single partition on the device. Then use
format
, and finally sys c:
- Quit qemu, mount the /dev/sdX1 partition somewhere and copy the
wdidle3.exe
program on there too.
- Now the ugly part comes up: Your BIOS is not your friend here. You
will need to turn your SATA controllers to Legacy IDE mode. You will
need to force your USB device to be handled as a hard disk, not a
floppy. And of course make it boot off the USB.
wdidle3 /s300
wdidle3 /r
- Dance, you deserve it.
- Now remember to undo all the damage you wrought on your BIOS before
you boot back to Debian.
Now, where you will fail is where you have a drive in a USB sled. Even
my fancy USB sleds with S.M.A.R.T. support won’t let the drives be
fixed. I suppose I need to take all that gear apart and temporarily
rotate the drives through a server to repair them.