Shutdown my (backup) hard disk on Linux when I don't use it

Umount the filesystem and then run hdparm -S 1 /dev/sdb to set it to spin down after five seconds (replace /dev/sdb with the actual device for the hard disk). This will minimize the power used and heat generated by the hard disk.


Short lookup in gnome-disk-utility repo code, and:

udisksctl power-off -b /dev/sdX

Works in Ubuntu and Mint. In ArchLinux, /usr/bin/udisksctl is owned by udisks2 package.

Source: Superuser SE answer


To further build upon samiam's answer, you can set udev rules to do these things for you.

For this example, you'd have to fill in a file in /etc/udev/rules.d (ideally name it something along the lines of 45-sdX-power.rules to respect the conventions, but it doesn't really matter...), with the following:

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sdX", ATTR{queue/rotational}=="1", RUN+="/path/to/hdparm -S 1 /dev/sdX"

where you will need to fill in sdX and provide the full path to the hdparm binary (which hdparm).

This will automatically stop your drive from spinning after 5 seconds of inactivity whenever your laptop boots.

This is ideal for a dual boot disk (my case), and backup disks you only startup once a week or so (in which case just mounting it before issuing your backup will turn it on and it will be off the rest of the time).

As for hdparm -Y /dev/sdX, it is less useful here as it only stops the disk from spinning once, after which any access to the disk (like mounting it) will re-start it and you will have to issue the command again.