hd-idle is a utility program for spinning down external disks after a period of idle time. Since most external IDE disk enclosures don't support setting the IDE idle timer, a program like hd-idle is required to spin down idle disks automatically.
A word of caution: hard disks don't like spinning up too often. Laptop disks are more robust in this respect than desktop disks but if you set your disks to spin down after a few seconds you may damage the disk over time due to the stress the spin-up causes on the spindle motor and bearings. It seems that manufacturers recommend a minimum idle time of 3-5 minutes, the default in hd-idle is 10 minutes.
One more word of caution: hd-idle will spin down any disk accessible via the SCSI layer (USB, IEEE1394, ...) but it will NOT work with real SCSI disks because they won't spin up automatically. Thus it's not called scsi-idle and I don't recommend using it on a real SCSI system unless you have a kernel patch that automatically starts the SCSI disks after receiving a sense buffer indicating the disk has been stopped. Without such a patch, real SCSI disks won't start again and you can as well pull the plug.
- -a name
Set device name of disks for subsequent idle-time parameters (-i). This parameter is optional in the sense that there's a default entry for all disks which are not named otherwise by using this parameter. This can also be a symlink (e.g. /dev/disk/by-uuid/...)
- -i idle_time
Idle time in seconds for the currently named disk(s) (-a <name>) or for all disks.
- -l logfile
Name of logfile (written only after a disk has spun up). Please note that this option might cause the disk which holds the logfile to spin up just because another disk had some activity. This option should not be used on systems with more than one disk except for tuning purposes. On single-disk systems, this option should not cause any additional spinups.
- -t disk
Spin-down the specfified disk immediately and exit.
Debug mode. This will prevent hd-idle from becoming a daemon and print debugging info to stdout/stderr
No-daemon mode. This will prevent hd-idle from becoming a daemon and print logging informatin to stdout. Most useful if hd-idle is started by systemd.
Print usage information.
The parameter -a can be used to set a filter on the disk's device name (omit /dev/) for subsequent idle-time settings. The default is all disks:
A -i option before the first -a option will set the default idle time; hence, compatibility with previous releases of hd-idle is maintained.
In order to disable spin-down of disks per default, and then re-enable spin-down on selected disks, set the default idle time to 0.
hd-idle -i 0 -a sda -i 300 -a sdb -i 1200
This example sets the default idle time to 0 (meaning hd-idle will never try to spin down a disk), then sets explicit idle times for disks which have the string "sda" or "sdb" in their device name.
hd-idle was written by Chistian Mueller <firstname.lastname@example.org>
This manual page was written by Christian Mueller <email@example.com>, for the Debian project (and may be used by others).