How can I make a HDD shut down automatically if it is not being used?

Xirup@lemmy.one to Linux@lemmy.ml – 10 points –

I recently installed Windows in dual boot with Linux (on two different SSDs) and I noticed that Windows automatically "shuts down" or stops the HDD if it is not being used.

I have a HDD (WD) connected by SATA cable where I usually keep my games. The HDD is not always in use but it is always constantly running and honestly the noise it makes is quite noticeable. I'm sure I don't have any program in the background using it constantly.

I have already tried to solve this problem using hdparm and hd-idle and although in theory they work I still hear the noise from the HDD.

10

If your only concern is noise (and not saving power), then the easiest solution is to just sound-proof your case - install some foam pads or something to dampen the noise. Check out https://www.quietpc.com/acousticmaterials to get an idea of what's out there and what you can use, but even simple random foam that you'd get in parcels would work to start off with.

You may want to research this some more. Spinning the drive up and down adds wear on the mechanical parts, and will lead to the drive failing a lot sooner.

Maybe you're okay with that tradeoff, just thought you should at least be aware of it.

Checkout smartctl. You can either force shutdown immediately or after some idle time. Command is something like this:

smartctl -n -s standby,VALUE /dev/sda with value either "now" or something between 0 and 255. From the manpage:

Values from 1 to 240 specify timeouts from 5 seconds to 20 minutes in 5 second increments. Values from 241 to 251 specify timeouts from 30 minutes to 330 minutes in 30 minute increments. Value 252 specifies 21 minutes. Value 253 specifies a vendor specific time between 8 and 12 hours. Value 255 specifies 21 minutes and 15 seconds.

I tried it and it does not seem to work unfortunately, at this point I think my HDD does not support the function to enter standby, although in Windows it does.

Did reformat the drive recently to ext4? there's a background process running that's doing deferred stuff which keeps the drive busy. try to unmount the drive to ensure it's idle.

Maybe you can unmount the HDD, then no process can access it and hd-idle could work.

I tried it and it didn't work... Thanks for the idea actually, I hadn't thought about it.