Big ups to everybody!
I recently discovered an absolutely horrible thing with the Western Digital 2.5" HDD in my laptop.
By reading the hdparm f***g manual I noticed the -J option:
-J Get/set the Western Digital (WD) Green Drive's "idle3" timeout value. This timeout controls how often the drive parks its heads and enters a low power consumption state. The factory default is eight (8) seconds, which is a very poor choice for use with Linux. Leaving it at the default will result in hundreds of thousands of head load/unload cycles in a very short period of time. The drive mechanism is only rated for 300,000 to 1,000,000 cycles, so leaving it at the default could result in premature failure, not to mention the performance impact of the drive often having to wake-up before doing routine I/O. WD supply a WDIDLE3.EXE DOS utility for tweaking this setting, and you should use that program instead of hdparm if at all possible. The reverse-engineered implementation in hdparm is not as complete as the original official program, even though it does seem to work on at a least a few drives. A full power cycle is required for any change in setting to take effect, regardless of which program is used to tweak things. A setting of 30 seconds is recommended for Linux use. Permitted values are from 8 to 12 seconds, and from 30 to 300 seconds in 30-second increments. Specify a value of zero (0) to disable the WD idle3 timer completely (NOT RECOMMENDED!).
Using this -J option I discovered that my WD 2.5" HDD was affected by this bad 8 seconds timeout.
The manual refers to the WIDLE3.EXE DOS utility for tweaking this setting.
I found this web page to help using the DOS utility.
Instead of using a DOS utility, I found the package idle3-tools for tweaking this setting:
DESCRIPTION idle3ctl can disable, get and set the value of the infamous idle3 timer found on recent Western Digital Hard Disk Drives. Idle3ctl can be used as an alternative to the official wdidle3.exe proprietary utility, without the need to reboot in a DOS environement. Idle3ctl is an independant project, unrelated in any way to Western Digital Corp. THIS SOFTWARE IS EXPERIMENTAL, NOT WELL TESTED AND ACCESSES LOW LEVEL INFORMATION OF YOUR HARDDRIVE. USE AT YOUR OWN RISK.
I found the Arch wiki page to help using the idle3ctl command.
I disabled the timeout setting with the -d option, and now you can see:
$ sudo idle3ctl -g /dev/sda Idle3 timer is disabled
The package smartmontools is useful too:
$ sudo smartctl /dev/sda -a | grep Load_Cycle 193 Load_Cycle_Count 0x0032 068 068 000 Old_age Always - 396805
396805 it’s a lot of cycles !!
At least I stopped the bleeding…