1

Windows has a serious problem with hard drives.

I have a bunch of hard drives (6+) which I use only occasionally for storage, accessing them perhaps twice a day on average. The rest of the time, I keep them spinned down for obvious reasons.

The problem is, Windows (and/or the many poorly-written programs running on it) just loves to spin up these hard drives every so often. I've used diagnostic tools such as Process Monitor to see if there's any specific trigger, but there's not. Many different programs (example: Photoshop, games, etc.) can simply get "nosy" and try to sniff the properties of your drives or storage volumes for no apparent useful reason.

The spin-up process also takes a long time because of the number of drives involved. So launching Photoshop takes over a minute instead of the couple of seconds it should take because it has to wait for all of my drives to spin up (even though it's not actually using them, at all).

Is there a way to simply hide or otherwise completely restrict access to these storage-only drives at a volume level, so that they simply don't exist to any snooping programs except those I explicitly allow?

EDIT: NOT A DUPLICATE

I posted a similar question about drives but this question is different. The solutions posed in that question still allow the logical volume names to be seen (e.g. by using the mountvol command). Therefore, restricting access at the "drive letter" level is not enough. I want to be able to restrict access to (or limit visibility of) the actual volumes themselves.

Again, this question is not a duplicate: I am asking how to hide low-level volumes, not drives. They are different beasts.

WackGet
  • 752
  • 2
  • 13
  • 28
  • Hi WackGet, if your original question wasn't quite on target, just edit it rather than posting a new question. – Paul Sep 20 '18 at 01:31
  • @Paul I did explain why it's a different question but I've edited it to clarify further. First question is about hiding drives; this question is about hiding logical volumes. – WackGet Sep 20 '18 at 16:01
  • To most programs, those are the same thing. The OS and certain low-level applications can see the actual hard drives, but most user-level applications will only see the volumes. – music2myear Sep 20 '18 at 20:26
  • Further, drives these days are designed to run just fine for long periods of time. Wear and failure happen most during spin-up/spin-down. Normally operating drives these days to not need to be forcibly spun down or protected. And the best thing is to run good backups. Your comments that "Windows has a... problem with... drives" and that reasons for spinning down drives are obvious are not and indicate to me that the root issue here may be a misunderstanding of how these work and their optimal operation. – music2myear Sep 20 '18 at 20:30
  • To put it another way: You have your own reasons for maintaining greater control over when and how your drives are spun up, but those reasons are not necessarily correct nor is your goal of gaining that control the likely best solution. – music2myear Sep 20 '18 at 20:31
  • 1
    @music2myear Way to be patronising with useless generalisations like "*most* programs do X so why do Y?". I've already explained my use case, and why restricting at drive-letter-level isn't enough. Besides, it's trivial for any program to get volume information using WMI, diskpart, mountvol, etc. And finally, why *shouldn't* the user have the greatest control possible over their own hardware? – WackGet Sep 20 '18 at 21:14
  • 1
    Would you tell someone who uses six externally-powered USB hard drives to "just leave them switched on all the time"? Even if they only use them once a day? And have you even considered the multitude of other reasons (besides spin-up time / power usage / noise levels) a user might want to restrict access to or otherwise forcefully power-down their hard drives (like security)? What about large multi-disk RAID arrays? Is it OK that every member drive of those should have to spin-up just because some program wants some useless system hardware metrics or to check if "recent files" still exist? – WackGet Sep 20 '18 at 21:25
  • 1
    Moreover, I've had issues with this nonsense for years, and it very often *doesn't even have an identifiable root cause*: https://superuser.com/questions/1150452/storage-drives-frequently-spinning-up-even-when-theyre-not-needed-can-i-stop-t Windows is just incredibly lacking when it comes to control of attached hardware. – WackGet Sep 20 '18 at 21:26
  • Given someone with a large number of external drives, I would recommend they use fewer larger drives, and possibly some sort of unified chassis such as a DROBO. Each iteration of Windows has improved reliability and decreased the depth of control one can get natively over the deeper parts of the software and the system hardware. To some extent these two growths are related. There are still OSes that offer that finely-grained control over every aspect, and at some point it may be worth considering these if you absolutely require that control. – music2myear Sep 20 '18 at 21:31
  • @music2myear You're right, a dedicated NAS or similar would be the best option but I do feel someone should be fighting the corner of the poor Windows user who just wants to let his storage drives sleep peacefully. I'll update if/when I find a solution. – WackGet Sep 21 '18 at 02:53
  • I'm still convinced it's a duplicate. You have exactly the same problem as you had before. The fact that (apparenlty) the answer you have received so far didn't work is not a reason to ask the question again. – Dmitry Grigoryev Sep 25 '18 at 16:19
  • @DmitryGrigoryev I think saw somewhere the hint that you should post another question if you're question does not get answered... not sure where that was though. – Albin Sep 26 '18 at 16:21
  • @WackGet may I ask why you put a bounty on a [different quesiton](https://superuser.com/questions/677114/deny-application-access-to-hard-drive-or-volume-in-windows-7) and not on yours? – Albin Sep 26 '18 at 16:22
  • @Albin A few reasons. The other question was receiving more attention. People apparently think this one is a duplicate even though I've clearly explained why it's not. I can't comment on the other question because apparently the bounty points are immediately removed from your account as soon as you open a bounty, and therefore I no longer have enough points to comment on other people's questions! Oh, StackExchange... – WackGet Sep 26 '18 at 16:26
  • @WackGet ah ok I see, would you mind commenting on the answers here? I can relate them for you! – Albin Sep 26 '18 at 16:28
  • @Albin Sure. I was going to comment tomorrow, when the bounty expires. But basically, the given answers don't work for my use-case. The programs I'm having trouble with (Photoshop and certain games) are still able to detect that there's a hard drive attached to the system and the drives are still being spun up, even when I launch these programs via Sandboxie or use user-level permissions to block access to the drives. You're right; I should have posted the bounty on this question, because it's clear now I need a way of blocking access to drives at a lower level. It might be impossible. – WackGet Sep 26 '18 at 16:30
  • @WackGet ok, I see. Can you mark them "offline" using "diskmgmt.msc" or deactivating the driver? If you do, do they still spin up? BeAlso how exactly are the volumes/drives connected on the hardware layer? – Albin Sep 26 '18 at 16:41
  • @WackGet I added it to my solution, some feedback if it works or not would be nice. If it does, could you please specify the software including the version (especially the ones that are available through trail download) so I can see the problem for myself? PS. I think I agree, your question / use case seems to be different from the others (user's questions). But I'm not sure how it's different from you other question. Isn't it the same problem/approach? It's just lacking the right answer?! – Albin Sep 26 '18 at 17:04
  • @WackGet please also have a look at solution 2 in my answer (using Hyper V or a third party software). It's a rather "resource intensive" solution but it will (should) solve you're problem. So at least it's not impossible. – Albin Sep 26 '18 at 18:04
  • @WackGet would be nice if you could review (and comment) on the answers before the grace period runs out... – Albin Sep 27 '18 at 13:23
  • @Albin Thank you for your answers. Unfortunately I can't even disable the drives from the device manager without first restarting the computer. As you can imagine, this wouldn't be a desirable solution as it would be too cumbersome and inconvenient. Using a virtualised application might be fine if not for the fact that this wouldn't work with most modern games (or would at least degrade in-game performance). I've come to the conclusion that there's no reasonably convenient, reliable way to do what I want on Windows. – WackGet Sep 27 '18 at 23:14
  • @WackGet Thanks for the feedback. I think I have good news, disabling the controller (by disabling it's driver) should be possible without a restart (I tried it on several systems because I find that problem quite interesting - although for other reasons). If you are ready to "throw the whole thing in the bin" yet I'm confident there is a solution to avoid restarting the computer in order to disable the controller. – Albin Sep 27 '18 at 23:25
  • @Albin Thank you! I'm almost there now. I found that if I made the drives "Offline" via Disk Management, then I could disable each drive in Device Manager without restarting! One problem remains, however: I've created a batch file to do this process automatically, but when I use the batch file, the drives *don't* disable until I restart the computer. Here's the batch file: https://paste2.org/tLD1W1PW Any help would be very appreciated. You deserve the bounty! – WackGet Sep 30 '18 at 15:22
  • @WackGet See, told you ; ) Anyway glad I could help... would have been nice if you would have awarded the bounty, this way I lost half of it... would be great if you could remember it the next time. Hope that at least you got the other half back. – Albin Oct 03 '18 at 08:50
  • @Albin I didn't, no. Bounties are more trouble than they're worth, it seems. – WackGet Oct 03 '18 at 18:17
  • @WackGet check the two links you'll find in my answer I posted here so we don't jump questions all the time. The first one uses a slightly different approach then you do, the other one uses power shell. If this still doesn't help let me know. PS. would be nice to get an upvote/accept here as well, it was a lot of afford so far ; ) – Albin Oct 03 '18 at 18:52

1 Answers1

0

In windows there is no native supported way to block certain processes from accessing certain drives, that goes "against the current nature" how the operating system handles drive access.

The right for access is determined by the logged on user's rights who starts the application. So if the software developer decided his software should search all accessible drives and does not give you the option to turn that off... well, that's bad programming which does not consider you're particular use case. But there are a few workarounds.

Note: this is part of my full answer I just included the solution that worked for this author

Option "1" - Disabling the drives on at a "low level" - No additional software needed

Option 1a It's possible to disable the volumes on a lower layer by disabling the drives altogether, but this will disable all volumes on the drive. Manually you can do it by starting diskmgmt.msc then right click on the drive an mark it "offline".

enter image description here

If needed you should be able to do that using a command line script as well. It would be applied a similar way as Option 3a/b. You can do that, for example via cmd as described here or via power shell, as it is described here.

Albin
  • 9,307
  • 11
  • 50
  • 89