How to forcibly disable (spin down) an internal Hard Drive (Windows 10 v1903)
I have my OS on an SSD and use my HDD (Toshiba P300) to store some data which I rarely access. I dislike the noise generated by the hard drive, so I'd like to disable it and be able to only enable it whenever I can. No, Windows Power Options are not the solution. Windows will wake up the drive randomly for no reason, even with disabled indexing and all handles/processes closed, as expected of this great operating system. I tried:
- Setting HDD to Offline in Disk Management (doesn't actually seem to do anything at all)
- Disabling HDD using Devcon / Device Manager (doesn't actually spin it down, just makes it unrecognizable by software and OS)
- Putting HDD in Standby using Smartcl / Hdparm / HDDScan (Windows keeps waking it up for no reason)
- Multiple combinations of all of the above What worked before updating to Windows v1903 (from v1607) was using RevoSleep, but since the update it doesn't work at all - the drive isn't recognizable but will keep spinning despite the software running. I even looked into disabling the port in BIOS itself, but that doesn't seem to be an option on my MSI B450 motherboard.
Ideally I need something that lets me put the drive in standby AND make it so it's not recognizable by the OS. Disabling the drive using Devcon/Device Manager wakes it up, after which it's inaccessible by software used to put it in standby in first place. Seems like all options expect physically disconnecting the drive do not seem to work any more. Yes I am aware of Hot Swap Drawers and I know that more start/stop cycles will wear down the drive more than letting it run, I don't care.
I will answer how I managed to find a solution. Note that it doesn't have to work for you, it does on my Windows v1903 machine with Toshiba P300 hard drive.
- Download Windows v1607 .iso (https://tb.rg-adguard.net/public.php)
- Extract "SATA AHCI Controller" and "DiskDrive" drivers from the v1607 Windows
- Install the old drivers, I assume they work for any version above v1607.
- Use software called HotSwap! to spin down the drive (it does that after ~5s). So far, after 3 days of testing, the HDD doesn't seem to spin up by itself. Even when launching software like HWInfo, CPU-Z, or CrystalDiskInfo. The only way to make it active again is by doing "Scan for hardware changes" (you can do that with DevCon Rescan/Device Manager).
I've uploaded the v1607 drivers HERE. In order to install them you need to disable "Signed Driver Enforcement", since for some reason they don't seem to be signed by Microsoft once you export them. If you don't trust a random guy on the internet (and you shouldn't) then do it yourself.
You can export the drivers with just 7zip and the .iso. You'll be looking for 2 folders called "mshdc.inf_amd64_67bad2c7196330b6" and "disk.inf_amd64_1e7038548624f167" located in: Win10_1607_x64.iso\sources\install.wim\1\Windows\System32\DriverStore\FileRepository\
Edit: The solution randomly stopped working after a few days. Seems like I underestimated how awful Windows is.
It is possible that Windows is using your HDD to store some system files that are being accessed during the normal OS operations if the SSD is small and there is not a whole lot of free space on it, and perhaps even if there is.
Examples of such files are:
- hiberfil.sys
- pagefile.sys
- swapfile.sys
If you open the Peformance Options
in the Advanced System Properties
, switch to Advanced
tab and click on Change...
button in the Virtual Memory
area you will see if Windows is using your HDD for swapping.
Here is what that looks like:
Make sure Automatically manage paging file size for all drives
is unchecked and your HDD paging file size is set to None.
As for the other system files, you could change your Windows Explorer options to show "protected operating system files" (Windows hides these by default) and make sure there are no system files in the root of your HDD (This is where Windows typically stores these files, I'm not sure if it would perhaps store the files elsewhere as well).