Quiet a noisy hard disk

January 31, 2014

On my arch box I have 4 disks

  1. the system SSD
  2. media (lvm spanning 2 2.5” disks)
  3. a spare 3TB volume

The system was designed to be very quiet, and it is except when the 3TB drive spins up. This is a Seagate 3.5” drive, and its annoying me.

As this drive is rarely used, there is no need for it to be spinning all the time, so how do we tell it to shut up

# hdparm -y /dev/sdb

This works great, now I just need the drive make the drive shut up by itself. One way is to tell it to go sleep when its not being used.

# hdparm -S 120 /dev/sdb

tells it to spin down after 5 minutes of not being used.

So now we just have to get these settings to persist. I believe the correct way to do this in Arch (2014) is to write a udev rule.

Udev on Arch

Rules for udev are located in /usr/lib/udev/rules.d/. You add your own rules in /etc/udev/rules.d/. I added

# /etc/udev/rules.d/11-sdb-spin-down.rules
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sdb", RUN+="/usr/bin/hdparm -S 60 /dev/sdb"

I tried suspending the disk as well with

 RUN+="/usr/bin/hdparm -S 60 -y /dev/sdb"

This worked, but unfortunately the rule is applied too early, and something starts up the disk again as the boot process continues.

Disclaimer

All my posts on Arch are written by an arch ignoramus. If you want to learn about Arch go to the Arch wiki. hdparm is a dangerous tool, you can easily destroy your hard disk with it, read the man pages BEFORE using it.