How to keep a hard drive from going to sleep?

6

2

I have two hard disk drives in my Windows 8 desktop. The issue I am having is that the secondary hard drive goes to sleep frequently (I assume do to inactivity while I am only using the primary drive.) Then when I need to access it I hear it spin back up as my entire computer grinds to a halt for a couple seconds.

Is there anyway to prevent an internal hard drive from sleeping? I looked in the BIOS and didn't see anything, and there was no Power Management tab in device manger like there is for USB drives.

This behavior has occurred with other versions of Windows, so it is not specific to Windows 8. I am starting to wonder if it is a hardware feature of the drive. Haven't tried it under Linux or some other OS.

Jim McKeeth

Posted 2013-02-15T20:12:27.127

Reputation: 4 907

For external HDs where I cannot control the power down settings, I started using http://keepalivehd.codeplex.com/ and am satisfied. You can put the time-period to slightly below the period before the drive powers down.

In your case (internal), you have control of the settings directly, like outlined in the answer below.

– Andreas Reiff – 2014-10-24T19:24:54.837

Can you check Device Manager and specify the drive models? For WD "Green" drives for example see my answer here.

– Karan – 2013-02-16T22:49:20.983

@Karan: These are not WD "Green" drives. Thanks though! – Jim McKeeth – 2013-02-18T23:21:34.567

Answers

13

Control Panel, Power Options, Change Plan Settings, Change Advanced Power settings, then where it says "Turn Hard Disks after" instead of selecting a number of minutes, set it "never"

WikiWitz

Posted 2013-02-15T20:12:27.127

Reputation: 1 233

2Be aware that you will use more power and wear out your disk faster. – paddy – 2013-02-15T20:25:40.573

@paddy - Your statement is not complete. It would only wear out if additional writes were made to the HDD. If the computer is idle enough to allow the HDD to sleep, it means, there won't be any additional writes and thus the device won't be wear out faster. – Ramhound – 2013-02-15T21:20:11.600

@Ramhound A drive spindle will still wear out if it spins 24/7, but you have a point... Is this worse than periodically spinning up and down? I'm not completely sure. – paddy – 2013-02-15T22:02:04.120

@paddy - If data is not being retrieved from the disk the drive-spindle is not going to wear out. Furthermore hDDs are design to be connected 24/7 anymore. I have a HDD that has at least 17,0000 hours on it before it went bad. – Ramhound – 2013-02-16T21:57:10.140

@paddy: See this and similar questions on the site.

– Karan – 2013-02-16T22:47:42.873

2

I have MSI laptop with SSD primary and HDD secondary, HDD goes to sleep in 30s. It is so frustrating every time I do something I have to wait a second or two, cause I keep only system on ssd the rest is on hdd. Found no way to adjust it in windows settings etc.

However, I worked off the Task Schedule approach that I found on internet for not letting external HDD to go to sleep HERE. There was a problem though, cause Scheduler wont allow <1min interval. So I wrote vbs script that copies 3 times at 0, 20 and 40s:

keepspinning.vbs

Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile "C:\Temp\keepspinning.txt", "D:\", True
WScript.Sleep 20000
fso.CopyFile "C:\Temp\keepspinning.txt", "D:\", True
WScript.Sleep 20000
fso.CopyFile "C:\Temp\keepspinning.txt", "D:\", True

that I trigger at logon from Scheduler and run at 1min interval.

And that was the only way I came up with to deal with this annoyance, and it is safer for hdd not to spin up so much.

Hope it helps somebody.

Since, Jim asked about just reading, the following worked - open file for writing, you need to have the file on D: before you can run it:

Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile("D:\keepspinning.txt",2)
objFileToWrite.Close
Set objFileToWrite = Nothing

WScript.Sleep 20000
Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile("D:\keepspinning.txt",2)
objFileToWrite.Close
Set objFileToWrite = Nothing

WScript.Sleep 20000
Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile("D:\keepspinning.txt",2)
objFileToWrite.Close
Set objFileToWrite = Nothing

Boris G

Posted 2013-02-15T20:12:27.127

Reputation: 119

Would reads work? I'm just thinking writes are more likely to wear the drive out quicker. – Jim McKeeth – 2015-10-01T20:27:01.223

@Jim tried just reading - does not work, I guess it reads from cache not HDD. File is empty, so nothing gets actually written onto HDD, just file system gets refreshed, should not wear it that bad. – Boris G – 2015-10-02T16:03:05.280

@Jim, found one that works w/o overwriting the file - yo just need to open it for writing, do not need to write into it, just opening is enough to keep HDD spinning, I edited my reply. – Boris G – 2015-10-02T16:45:40.273

Alternatively, you can also modify a setting in the "Advanced Power Management" of your hard-drive. See the answer here

– Fabien – 2016-07-26T21:17:55.153