Up goes this, because it remains a problem for most disks of all brands to this day. Here's a quick info dump.
- https://sites.google.com/site/quiethdd/ - quietHDD. If you don't have too much time, this is the simplest and fastest solution. Install, run as administrator, configure it to disable APM and AAM and keep it open.
- https://disablehddapm.blogspot.com/ - hdparm for Windows. A very old Cygwin port, but it still works. Install, delete its startup shortcut, then save the following code block as a .xml file with UTF-16 encoding and import it to your task scheduler (note the red comment).
Code:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2019-09-05T21:35:07.7749152</Date>
<Author>redacted\redacted</Author>
<Description>Keeps APM, AAM, standby timeout and Seagate power saving disabled on the first hard disk.</Description>
</RegistrationInfo>
<Triggers>
<BootTrigger>
<Enabled>true</Enabled>
</BootTrigger>
<EventTrigger>
<Enabled>true</Enabled>
<Subscription><QueryList><Query Id="0" Path="System"><Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and EventID=42]]</Select></Query></QueryList></Subscription>
<Delay>PT5S</Delay>
</EventTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-18</UserId>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>true</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
<Priority>7</Priority>
<RestartOnFailure>
<Interval>PT1M</Interval>
<Count>10</Count>
</RestartOnFailure>
</Settings>
<Actions Context="Author">
<Exec>
<!-- Edit the path if you're not on x64 or have installed hdparm somewhere else -->
<Command>"C:\Program Files (x86)\hdparm\hdparm.exe"</Command>
<Arguments>-B 255 -M 254 -S 0 -Z sda</Arguments>
</Exec>
</Actions>
</Task>
Registry tweaks also exist, but are driver-dependent and only apply on startup (when the driver is initialized) in any case. For Linux, the equivalents are putting hdparm on /etc/rc.local and/or creating a udev rule; check your distro's documentation for more details.
Note that disks do not necessarily obey the "disable APM completely" command sent by hdparm, CrystalDiskInfo and others. You'll have to set APM to 254 in that case. Here's a table explaining all the possible values.
Code:
Advanced Power Management (APM)
*Count* *Level*
00h Reserved
01h Minimum power consumption with Standby
02h-7Fh Intermediate power management levels with Standby
80h Minimum power consumption without Standby
81h-FDh Intermediate power management levels without Standby
FEh Maximum performance
FFh Reserved
Automatic Acoustic Management (AAM)
*Count* *Level*
00h Vendor Specific
01h Retired
80h Minimum acoustic emanation level
81h-FDh Intermediate acoustic management levels
FEh Maximum performance
FFh Reserved
When a disk is idle, at least some of the following timers can run concurrently, and should one of them "win", the disk will spin down. Disable or bypass them all and you'll prevent this from happening.
- OS idle timer - configurable through its power settings. Changes can be stored persistently.
- APM spindown (for certain values as per above) - configurable with `hdparm -B', quietHDD, CrystalDiskInfo, HDDScan and many others. Changes are lost after a power cycle or ATA software reset.
- ATA standby - configurable with `hdparm -S'. Changes can be stored persistently.
- Enclosure idle timer (for externals) - very rarely configurable. Use a script or program that regularly writes to the disk to keep it active as a workaround (see post #24).
- Idle3 (Western Digital only) - configurable with WDIDLE3 (DOS) or idle3ctl (Linux). Changes can be stored persistently.
Bookmarks