HD-IDLE(8)

πŸ“¦
version 1.22 Β· 2 versions
, in alpine 3.24, debian trixie, nixos 26.05, nixpkgs unstable, ubuntu questing, ubuntu resolute, ubuntu stonking

🌸 NAME 🌸

hd-idle β€” bestie, it's the utility that spins down your idle hard disks so they can finally take a nap πŸ’€


✨ SYNOPSIS ✨

hd-idle [options]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so hd-idle is a utility program for spinning down external disks after a period of idle time. the whole reason it exists? most external IDE disk enclosures literally don't support setting the IDE idle timer, so you need a program like hd-idle to spin down idle disks automatically. it's giving "fine, I'll do it myself" πŸ’…

⚠️ a word of caution, and I mean this with my whole chest: 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, and the default in hd-idle is 10 minutes. so like… don't be impatient with your disk, she's doing her best 🫢

πŸ‘‘ OPTIONS πŸ‘‘

  • -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. setting this value to "0" will never spin down the disk(s). zero means she stays awake forever, no cap πŸ’€
  • -c command_type β€” api call to stop the device. possible values are "scsi" (the default value) and "ata".
  • -p power_condition β€” power condition to send with the issued SCSI START STOP UNIT command. possible values are "0-15" (inclusive). the default value of "0" works fine for disks accessible via the SCSI layer (USB, IEEE1394, ...), but it will *NOT* work as intended with real SCSI / SAS disks πŸ™ˆ a stopped SAS disk will not start up automatically on access, but requires a startup command for reactivation. useful values for SAS disks are "2" for idle and "3" for standby. write that down πŸ“
  • -s symlink_policy β€” set the policy to resolve symlinks for devices. if set to "0", symlinks are resolve only on start. if set to "1", symlinks are also resolved on runtime until success. by default symlinks are only resolve on start. if the symlink doesn't resolve to a device, the default configuration will be applied.
  • -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 specified disk immediately and exit. it can be used in combination with -c to specify the command type. immediate. no waiting. bye girl πŸ‘‹
  • -d β€” debug mode. it will print debugging info to stdout/stderr (/var/log/syslog if started as with systemctl).
  • -h β€” print usage information.

🌈 DISK SELECTION 🌈

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:

  1. a -i option before the first -a option will set the default idle time.
  2. 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.

πŸŽ€ EXAMPLE πŸŽ€

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) and default "scsi" api command, then sets explicit idle times for disks which have the string "sda" or "sdb" in their device name. periodt ✨


πŸ’œ EXAMPLE πŸ’œ

hd-idle -i 0 -c ata -a sda -i 300 -a sdb -i 1200 -c scsi

this example sets the default idle time to 0 (meaning hd-idle will never try to spin down a disk) and default "ata" api command, then sets explicit idle times for disks which have the string "sda" or "sdb" in their device name and sets "sdb" to use "ata" api command.

the option -c allows to set the api call that sends the spindown command. possible values are "scsi" (the default value) or "ata". iykyk 😌


🫢 AUTHOR 🫢

hd-idle was written by Andoni del Olmo <andoni.delolmo@gmail> based on Chistian Mueller's <chris@mumac.de> work. iconic collaboration fr fr πŸ’–

this manual page was written by Christian Mueller <chris@mumac.de>, for the Debian project (and may be used by others).

modified by Andoni del Olmo <andoni.delolmo@gmail.com>.


and that's the whole page bestie πŸ’… this one's from the System Manager's Manual, HD-IDLE(8) era, dated September 8, 2019 β€” go forth and let your disks rest, they've earned it πŸŒΈπŸ’€