Danger! Western Digital Green Power drives are ticking time bombs.
… 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 useformat
, and finallysys 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.