Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This question already has an answer here:

When installing anything, namely Windows Updates, Windows tends to use other physical drives to unpack installer, and launch it from there. This leaves plethora of stupidly named folders after a while (mostly .NET updates), which are difficult to remove after, because owner is set to, probably, SYSTEM.

Recently I noticed, that Windows 8 does something to my other drive during installation of any program (e.g. not just Windows Updates). I know this, because there is Win7 on this other drive, and it tells me I need to chkdsk it when I start Win7 from other drive again.

So the REAL question is: can I tell Windows to get its paws off other drives? They're SSDs, so speed-wise there's nothing to gain...

share|improve this question

marked as duplicate by Ƭᴇcʜιᴇ007, TFM, n0pe, KronoS, 8088 Mar 7 '13 at 16:53

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

this is not a duplicate, he's asking how to prevent this from happening in the first place. – MDT Guy Mar 6 '13 at 18:34
Question still stands. There's other things to account for, e.g. NTFS pendrives - they move between different kind of windowses, so it is natural to suspect, that after being in a Win8, they would be scanned whenever they came from. Also DISABLE chkdsk is not what I'm asking here. Win8 shuts down properly, but makes Win7 think it needs chkdsk all drives. So here I am, waiting for MS to enable coexistence of different NTFS versions, in the meantime would be nice to get answer for this, should someone know it. – Kitet Mar 6 '13 at 18:46
Do you need any access to the Win7 drive while using Win8 whatsoever? If not, you could try remove its drive letter using Computer Management – Graham Wager Mar 6 '13 at 19:22
For the time being - yes, I need to. – Kitet Mar 6 '13 at 19:29

About the only way you'll completely prevent the OS from possibly affecting the disk is to dismount it from the OS (or physically disconnect it, or disable it in the BIOS).

The Chkdsk thing is (as pointed out in the answers in the duplicate I linked) because Windows 8 is (probably) set to Hybrid Boot (the default if the system can support it), which uses hibernation to store the system state (so it boots faster).

Hibernation doesn't remove the 'dirty' flag from the file system before shutting down, because it's not actually shutting down (it's hibernating). When you then boot into Windows 7, it sees this flag on the file system, and prompts to run a Chkdsk.

So to prevent the Chkdsk prompt while switching between OS's, disable Hybrid Boot in Windows 8 (not Chkdsk).

More info on Hybrid Boot: What does a hybrid boot do and why wouldn't I always enable it?

So here I am, waiting for MS to enable coexistence of different NTFS versions...

The NTFS driver versions have changed over the different versions of Windows to add/change available features, but the on-disk file system version of NTFS in Windows 8 is the same as it's been since XP - v3.1 (run fsutil fsinfo ntfsinfo c: at an elevated command prompt to check).

share|improve this answer
+1 for hybrid boot info, i REALLY didn't know it was there. Well, having SSDs makes Win7 and 8 start within about 8-10 secs, so really, no difference between hybrid and not-hybrid, apparently. Your answer may clear a couple of misunderstandings then, including my previous question about NTFS incompatibility... Going off to test this out, will report back in a bit. – Kitet Mar 6 '13 at 20:03

skip check disk:

CHKNTFS /X <disk name 1>: <disk name 2>: <disk name 3>:  ...


CHKNTFS /X C: D: I: N: O: P:

enumerate name logic disk name:

powershell [char[]](67..90) ^| ?{(gwmi win32_logicaldisk ^| select -expand DeviceID) -contains \"$($_):\"}

enumerate free name logic disk name:

powershell [char[]](67..90) ^| ?{(gwmi win32_logicaldisk ^| select -expand DeviceID) -notcontains \"$($_):\"}

first free name logic disk name:

powershell [char[]](67..90)^|?{(gwmi win32_logicaldisk^|select -expand DeviceID) -notcontains \"$($_):\"}^|select -first 1
share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.