Western Digital Green - Drive Fix - Linux

Other languages:
English • ‎Türkçe • ‎русский

Here's the story

I have recently discovered (a bit too late) that Western Digital Green hard drives have a serious issue when used in Linux as a main drive or a NAS drive. The problem can also occur in certain situations in windows too. The problem is due to a feature called intellipark. Which parks the heads on the drive after 8secs of drive inactivity.

Many Linux installations write to the file system a few times a minute in the background (eg. writing logs). As a result, there may be 100 or more load cycles per hour, and the load cycle rating may be exceeded in less than a year. This problem also makes the drives very unresponsive and makes your system feel slow as the heads need to be unparked when you try and load something.

My friend has killed two 1TB Green drives on his XBMC media box in 4years. The 500GB drive in my partners machine is in deep trouble as the load_cycle count is at 1991353 after a power_on_hours of 29549hrs. Compare that to my WD Black 1TB which has a load_cycle count of 721 after 13579hrs.

Now Western Digitals specsheet says that the drives are good for 300,000 Load/unload cycles, so this is a pretty big deal. [1]

How to check/evaluate your WD Green Drive

If you have a Western Digital Green drive, please check your SMART information before it's too late. To do this you will need to install the package called smartmontools with pamac, octopi, or pacman:

user $ sudo pacman -S smartmontools COPY TO CLIPBOARD


Now check like this changing sda to whatever your Green drive is.
(Use lsblk in terminal or gparted or i-nex or something to work out which drive it is.):

user $ sudo smartctl -A /dev/sda COPY TO CLIPBOARD


193 Load_Cycle_Count        0x0032   253   253 
000    Old_age   Always       -       1991353

If the Load cycle count exceeds a few thousand, you're affected by the idle3 timer problem.

Here is how the output should look when this isn't a problem:

user $ sudo smartctl -A /dev/sdb COPY TO CLIPBOARD


193 Load_Cycle_Count        0x0032   200   200   
000    Old_age   Always       -       721


This is how we solve the problem

Ok so you have the problem and want to fix it. Western digital have made a DOS utility to fix it if you ask them for it. Or can find it. Its called wdidle3.exe

But we aren't going to use that. Instead we are going to use a Linux unofficial alternative called idle3-tools. It is already packaged in Manjaro so no need to compile it. but here is the source [2]

Install idle3-tools with pamac or octopi or like this in the terminal:

user $ sudo pacman -S idle3-tools COPY TO CLIPBOARD


Now check what your drives timer is currently set as. (replace sda if needed with your own drive.):

user $ sudo idle3ctl -g /dev/sda COPY TO CLIPBOARD


It will likely say it's set to 80 [8sec]

Modify the timer

In-depth instructions and source of the tool can be found here.

The advisable approach is to simply set the timer to the linux default of 30 seconds (replace sda if needed with your own drive):

user $ sudo idle3ctl -s 129 /dev/sda COPY TO CLIPBOARD


Disable the timer (not recommended)

To just let the system power management handle the drive disable the timer (replace sda if needed with your own drive):

user $ sudo idle3ctl -d /dev/sda COPY TO CLIPBOARD


Power off and verify

Next step is to shutdown and power off your computer. Rebooting isn't enough! You need to power off, so the drive will turn on with the new settings.

Now verify the status:

user $ sudo idle3ctl -g /dev/sda COPY TO CLIPBOARD


Optional step

Remove idle3-tools and smartmontools with octopi or pamac or in a terminal:

user $ sudo pacman -R idle3-tools smartmontools COPY TO CLIPBOARD



That's it! All done. You can now enjoy the reliability and speed from the WD Green drive that you expected to have when you bought it.


Support

Following is a link to this page's forum counterpart where you can post any related feedback: [3]