[project page] [tarballs]
git://git.code.sf.net/p/parkverbot/parkverbot

Description

Summary: Disable/Prevent hard disks from parking their heads.

Modern rotational hard disks have a misfeature involving the regular automatic unloading of the heads, measurable by the S.M.A.R.T. attribute no. 193/225 "Load_Cycle_Count". While we do not know for sure, it is thinkable that manufacturers attempt to save power, or at least sell it that way.

The downside of this is significant latency on wakeup, and the constant hard retraction of the head is believed to reduce the disk's life. It is also not reliably deactivatable: `hdparm -B` can yield "APM_level = not supported", in other cases, setting APM is supported, but has no effect. Furthermore, hdparm(8) does not work with SCSI/SAS disks or disks behind protocol translation bridges (most USB enclosures). Using a DOS utility disk just is not realistic.

The "parkverbot" daemon will issue small read requests periodically to a random location on disk in an effort to reset the inactivity timer in the hardware and so prevent the dreaded head unloading.

The current algorithms are not fully proof, but it works reasonably well in practice for the amount of code it is composed of. The statistical success/failure rate with park prevention is such that 0.4 unloads/day are achievable. N.B.: The UPD value may be higher if parkverbot does not run at all times - boot procedure time does accumulate, especially with machines that are casually rebooted such as desktop-use machines.

parkverbot obsoletes the earlier "thkd" package.